diff mbox series

[v2,9/9] gitlab-ci: Add alpine to pipeline

Message ID 20210118063808.12471-10-jiaxun.yang@flygoat.com (mailing list archive)
State New, archived
Headers show
Series Alpine Linux build fix and CI pipeline | expand

Commit Message

Jiaxun Yang Jan. 18, 2021, 6:38 a.m. UTC
We only run build test and check-acceptance as their are too many
failures in checks due to minor string mismatch.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
---
 .gitlab-ci.d/containers.yml |  5 +++++
 .gitlab-ci.yml              | 23 +++++++++++++++++++++++
 2 files changed, 28 insertions(+)

Comments

Daniel P. Berrangé Jan. 18, 2021, 10:11 a.m. UTC | #1
On Mon, Jan 18, 2021 at 02:38:08PM +0800, Jiaxun Yang wrote:
> We only run build test and check-acceptance as their are too many
> failures in checks due to minor string mismatch.

Can you give real examples of what's broken here, as that sounds
rather suspicious, and I'm not convinced it should be ignored.

> 
> Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
> ---
>  .gitlab-ci.d/containers.yml |  5 +++++
>  .gitlab-ci.yml              | 23 +++++++++++++++++++++++
>  2 files changed, 28 insertions(+)
> 
> diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml
> index 910754a699..90fac85ce4 100644
> --- a/.gitlab-ci.d/containers.yml
> +++ b/.gitlab-ci.d/containers.yml
> @@ -28,6 +28,11 @@
>      - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
>      - if: '$CI_COMMIT_REF_NAME == "testing/next"'
>  
> +amd64-alpine-container:
> +  <<: *container_job_definition
> +  variables:
> +    NAME: alpine
> +
>  amd64-centos7-container:
>    <<: *container_job_definition
>    variables:
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 4532f1718a..6cc922aedb 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -72,6 +72,29 @@ include:
>      - cd build
>      - du -chs ${CI_PROJECT_DIR}/avocado-cache
>  
> +build-system-alpine:
> +  <<: *native_build_job_definition
> +  variables:
> +    IMAGE: alpine
> +    TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu
> +      moxie-softmmu microblazeel-softmmu mips64el-softmmu
> +    MAKE_CHECK_ARGS: check-build
> +    CONFIGURE_ARGS: --enable-docs
> +  artifacts:
> +    expire_in: 2 days
> +    paths:
> +      - build
> +
> +acceptance-system-alpine:
> +  <<: *native_test_job_definition
> +  needs:
> +    - job: build-system-alpine
> +      artifacts: true
> +  variables:
> +    IMAGE: alpine
> +    MAKE_CHECK_ARGS: check-acceptance
> +  <<: *acceptance_definition
> +
>  build-system-ubuntu:
>    <<: *native_build_job_definition
>    variables:
> -- 
> 2.30.0
> 
> 

Regards,
Daniel
Thomas Huth Jan. 18, 2021, 10:22 a.m. UTC | #2
On 18/01/2021 11.11, Daniel P. Berrangé wrote:
> On Mon, Jan 18, 2021 at 02:38:08PM +0800, Jiaxun Yang wrote:
>> We only run build test and check-acceptance as their are too many
>> failures in checks due to minor string mismatch.
> 
> Can you give real examples of what's broken here, as that sounds
> rather suspicious, and I'm not convinced it should be ignored.

I haven't tried, but I guess it's the "check-block" iotests that are likely 
failing with a different libc, since they do string comparison on the 
textual output of the tests. If that's the case, it would maybe be still ok 
to run "check-qtest" and "check-union" on Alpine instead of the whole 
"check" test suite.

  Thomas
Daniel P. Berrangé Jan. 18, 2021, 10:26 a.m. UTC | #3
On Mon, Jan 18, 2021 at 11:22:47AM +0100, Thomas Huth wrote:
> On 18/01/2021 11.11, Daniel P. Berrangé wrote:
> > On Mon, Jan 18, 2021 at 02:38:08PM +0800, Jiaxun Yang wrote:
> > > We only run build test and check-acceptance as their are too many
> > > failures in checks due to minor string mismatch.
> > 
> > Can you give real examples of what's broken here, as that sounds
> > rather suspicious, and I'm not convinced it should be ignored.
> 
> I haven't tried, but I guess it's the "check-block" iotests that are likely
> failing with a different libc, since they do string comparison on the
> textual output of the tests. If that's the case, it would maybe be still ok
> to run "check-qtest" and "check-union" on Alpine instead of the whole
> "check" test suite.

Perhaps errno strings are different due to libc hitting block tests. I
would expect this to be explained in the commit message though with
example, so we have a clear record of why we needed to disable this.

It might indicate a need to change our test suite to be more robust
in this area, because that would also suggest the tests might fail
on  non-Linux.

Regards,
Daniel
Jiaxun Yang Jan. 18, 2021, 1:37 p.m. UTC | #4
On Mon, Jan 18, 2021, at 6:11 PM, Daniel P. Berrangé wrote:
> On Mon, Jan 18, 2021 at 02:38:08PM +0800, Jiaxun Yang wrote:
> > We only run build test and check-acceptance as their are too many
> > failures in checks due to minor string mismatch.
> 
> Can you give real examples of what's broken here, as that sounds
> rather suspicious, and I'm not convinced it should be ignored.

Mostly Input/Output error vs I/O Error.

- Jiaxun
Thomas Huth Jan. 18, 2021, 2:44 p.m. UTC | #5
On 18/01/2021 14.37, Jiaxun Yang wrote:
> 
> 
> On Mon, Jan 18, 2021, at 6:11 PM, Daniel P. Berrangé wrote:
>> On Mon, Jan 18, 2021 at 02:38:08PM +0800, Jiaxun Yang wrote:
>>> We only run build test and check-acceptance as their are too many
>>> failures in checks due to minor string mismatch.
>>
>> Can you give real examples of what's broken here, as that sounds
>> rather suspicious, and I'm not convinced it should be ignored.
> 
> Mostly Input/Output error vs I/O Error.

Right, out of curiosity, I also gave it a try:

  https://gitlab.com/huth/qemu/-/jobs/969225330

Apart from the "I/O Error" vs. "Input/Output Error" difference, there also 
seems to be a problem with "sed" in some of the tests.

Jiaxun, I think you could simply add a job like this instead:

check-system-alpine:
   <<: *native_test_job_definition
   needs:
     - job: build-system-alpine
       artifacts: true
   variables:
     IMAGE: alpine
     MAKE_CHECK_ARGS: check-qtest check-unit check-qapi-schema check-softfloat

That will run all the other tests, without the problematic check-block part.

  Thomas
Daniel P. Berrangé Jan. 18, 2021, 2:50 p.m. UTC | #6
On Mon, Jan 18, 2021 at 03:44:49PM +0100, Thomas Huth wrote:
> On 18/01/2021 14.37, Jiaxun Yang wrote:
> > 
> > 
> > On Mon, Jan 18, 2021, at 6:11 PM, Daniel P. Berrangé wrote:
> > > On Mon, Jan 18, 2021 at 02:38:08PM +0800, Jiaxun Yang wrote:
> > > > We only run build test and check-acceptance as their are too many
> > > > failures in checks due to minor string mismatch.
> > > 
> > > Can you give real examples of what's broken here, as that sounds
> > > rather suspicious, and I'm not convinced it should be ignored.
> > 
> > Mostly Input/Output error vs I/O Error.
> 
> Right, out of curiosity, I also gave it a try:
> 
>  https://gitlab.com/huth/qemu/-/jobs/969225330
> 
> Apart from the "I/O Error" vs. "Input/Output Error" difference, there also
> seems to be a problem with "sed" in some of the tests.

The "sed" thing sounds like something that ought to be investigated
from a portability POV rather than ignored.

More worrying is the fact that there's a segv in there too when
running qemu-img, which does not give me confidence in use of
it with musl.



Regards,
Daniel
Thomas Huth Jan. 18, 2021, 3:12 p.m. UTC | #7
On 18/01/2021 15.50, Daniel P. Berrangé wrote:
> On Mon, Jan 18, 2021 at 03:44:49PM +0100, Thomas Huth wrote:
>> On 18/01/2021 14.37, Jiaxun Yang wrote:
>>>
>>>
>>> On Mon, Jan 18, 2021, at 6:11 PM, Daniel P. Berrangé wrote:
>>>> On Mon, Jan 18, 2021 at 02:38:08PM +0800, Jiaxun Yang wrote:
>>>>> We only run build test and check-acceptance as their are too many
>>>>> failures in checks due to minor string mismatch.
>>>>
>>>> Can you give real examples of what's broken here, as that sounds
>>>> rather suspicious, and I'm not convinced it should be ignored.
>>>
>>> Mostly Input/Output error vs I/O Error.
>>
>> Right, out of curiosity, I also gave it a try:
>>
>>   https://gitlab.com/huth/qemu/-/jobs/969225330
>>
>> Apart from the "I/O Error" vs. "Input/Output Error" difference, there also
>> seems to be a problem with "sed" in some of the tests.
> 
> The "sed" thing sounds like something that ought to be investigated
> from a portability POV rather than ignored.

The weird thing is that we explicitly test for GNU sed in 
tests/check-block.sh and skip the iotests if it's not available... so I'm a 
little bit surprised that the iotests are run here with an apparently 
different version of sed...?

  Thomas
Thomas Huth Jan. 19, 2021, 11:49 a.m. UTC | #8
On 18/01/2021 16.12, Thomas Huth wrote:
> On 18/01/2021 15.50, Daniel P. Berrangé wrote:
>> On Mon, Jan 18, 2021 at 03:44:49PM +0100, Thomas Huth wrote:
>>> On 18/01/2021 14.37, Jiaxun Yang wrote:
>>>>
>>>>
>>>> On Mon, Jan 18, 2021, at 6:11 PM, Daniel P. Berrangé wrote:
>>>>> On Mon, Jan 18, 2021 at 02:38:08PM +0800, Jiaxun Yang wrote:
>>>>>> We only run build test and check-acceptance as their are too many
>>>>>> failures in checks due to minor string mismatch.
>>>>>
>>>>> Can you give real examples of what's broken here, as that sounds
>>>>> rather suspicious, and I'm not convinced it should be ignored.
>>>>
>>>> Mostly Input/Output error vs I/O Error.
>>>
>>> Right, out of curiosity, I also gave it a try:
>>>
>>>   https://gitlab.com/huth/qemu/-/jobs/969225330
>>>
>>> Apart from the "I/O Error" vs. "Input/Output Error" difference, there also
>>> seems to be a problem with "sed" in some of the tests.
>>
>> The "sed" thing sounds like something that ought to be investigated
>> from a portability POV rather than ignored.
> 
> The weird thing is that we explicitly test for GNU sed in 
> tests/check-block.sh and skip the iotests if it's not available... so I'm a 
> little bit surprised that the iotests are run here with an apparently 
> different version of sed...?

Oh, well, I've fired up a bootable ISO image of Alpine, and ran "sed 
--version" and it says:

  This is not GNU sed version 4.0

Ouch. But I guess we could add a check for that to our tests/check-block.sh 
script, too...

  Thomas
diff mbox series

Patch

diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml
index 910754a699..90fac85ce4 100644
--- a/.gitlab-ci.d/containers.yml
+++ b/.gitlab-ci.d/containers.yml
@@ -28,6 +28,11 @@ 
     - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
     - if: '$CI_COMMIT_REF_NAME == "testing/next"'
 
+amd64-alpine-container:
+  <<: *container_job_definition
+  variables:
+    NAME: alpine
+
 amd64-centos7-container:
   <<: *container_job_definition
   variables:
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4532f1718a..6cc922aedb 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -72,6 +72,29 @@  include:
     - cd build
     - du -chs ${CI_PROJECT_DIR}/avocado-cache
 
+build-system-alpine:
+  <<: *native_build_job_definition
+  variables:
+    IMAGE: alpine
+    TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu
+      moxie-softmmu microblazeel-softmmu mips64el-softmmu
+    MAKE_CHECK_ARGS: check-build
+    CONFIGURE_ARGS: --enable-docs
+  artifacts:
+    expire_in: 2 days
+    paths:
+      - build
+
+acceptance-system-alpine:
+  <<: *native_test_job_definition
+  needs:
+    - job: build-system-alpine
+      artifacts: true
+  variables:
+    IMAGE: alpine
+    MAKE_CHECK_ARGS: check-acceptance
+  <<: *acceptance_definition
+
 build-system-ubuntu:
   <<: *native_build_job_definition
   variables: