[PATCH v5 01/15] gitlab: ensure all meson jobs capture build/meson-logs by default

Daniel P. Berrangé posted 15 patches 1 month, 1 week ago
Maintainers: "Alex Bennée" <alex.bennee@linaro.org>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Thomas Huth <thuth@redhat.com>, Pierrick Bouvier <pierrick.bouvier@linaro.org>, John Snow <jsnow@redhat.com>, Cleber Rosa <crosa@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>
[PATCH v5 01/15] gitlab: ensure all meson jobs capture build/meson-logs by default
Posted by Daniel P. Berrangé 1 month, 1 week ago
The build-without-defaults and build-tci jobs do not capture any
artifacts, despite running 'make check'. This has proved a repeated
bug with CI jobs, so introduce a new '.meson_job_template' rule
which always captures 'build/meson-logs'. Jobs can still provide
their own 'artifacts:' config which will override this default
behaviour.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 .gitlab-ci.d/buildtest-template.yml | 30 ++++++++++++++++++-----------
 .gitlab-ci.d/buildtest.yml          |  4 +++-
 2 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/.gitlab-ci.d/buildtest-template.yml b/.gitlab-ci.d/buildtest-template.yml
index d866cb12bb..005058625e 100644
--- a/.gitlab-ci.d/buildtest-template.yml
+++ b/.gitlab-ci.d/buildtest-template.yml
@@ -1,5 +1,20 @@
-.native_build_job_template:
+
+# Any job running meson should capture meson logs
+# by default. Some jobs might override the artifacts
+# to capture further files
+.meson_job_template:
   extends: .base_job_template
+  artifacts:
+    name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
+    when: always
+    expire_in: 7 days
+    paths:
+      - build/meson-logs
+    reports:
+      junit: build/meson-logs/*.junit.xml
+
+.native_build_job_template:
+  extends: .meson_job_template
   stage: build
   image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
   cache:
@@ -60,7 +75,7 @@
       - build/**/*.c.o.d
 
 .common_test_job_template:
-  extends: .base_job_template
+  extends: .meson_job_template
   stage: test
   image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
   script:
@@ -87,14 +102,7 @@
     # Prevent logs from the build job that run earlier
     # from being duplicated in the test job artifacts
     - rm -f build/meson-logs/*
-  artifacts:
-    name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
-    when: always
-    expire_in: 7 days
-    paths:
-      - build/meson-logs
-    reports:
-      junit: build/meson-logs/*.junit.xml
+
 
 .functional_test_job_template:
   extends: .common_test_job_template
@@ -125,7 +133,7 @@
     QEMU_JOB_FUNCTIONAL: 1
 
 .wasm_build_job_template:
-  extends: .base_job_template
+  extends: .meson_job_template
   stage: build
   image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
   before_script:
diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
index 6ad3594522..4b20429c7f 100644
--- a/.gitlab-ci.d/buildtest.yml
+++ b/.gitlab-ci.d/buildtest.yml
@@ -652,7 +652,9 @@ build-tci:
 
 # Check our reduced build configurations
 build-without-defaults:
-  extends: .native_build_job_template
+  extends:
+    - .native_build_job_template
+    - .native_build_artifact_template
   needs:
     - job: amd64-centos9-container
   variables:
-- 
2.53.0


Re: [PATCH v5 01/15] gitlab: ensure all meson jobs capture build/meson-logs by default
Posted by Thomas Huth 1 month, 1 week ago
On 04/03/2026 15.21, Daniel P. Berrangé wrote:
> The build-without-defaults and build-tci jobs do not capture any
> artifacts, despite running 'make check'. This has proved a repeated
> bug with CI jobs, so introduce a new '.meson_job_template' rule
> which always captures 'build/meson-logs'. Jobs can still provide
> their own 'artifacts:' config which will override this default
> behaviour.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>   .gitlab-ci.d/buildtest-template.yml | 30 ++++++++++++++++++-----------
>   .gitlab-ci.d/buildtest.yml          |  4 +++-
>   2 files changed, 22 insertions(+), 12 deletions(-)
> 
> diff --git a/.gitlab-ci.d/buildtest-template.yml b/.gitlab-ci.d/buildtest-template.yml
> index d866cb12bb..005058625e 100644
> --- a/.gitlab-ci.d/buildtest-template.yml
> +++ b/.gitlab-ci.d/buildtest-template.yml
> @@ -1,5 +1,20 @@
> -.native_build_job_template:
> +
> +# Any job running meson should capture meson logs
> +# by default. Some jobs might override the artifacts
> +# to capture further files
> +.meson_job_template:
>     extends: .base_job_template
> +  artifacts:
> +    name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
> +    when: always
> +    expire_in: 7 days
> +    paths:
> +      - build/meson-logs
> +    reports:
> +      junit: build/meson-logs/*.junit.xml
> +
> +.native_build_job_template:
> +  extends: .meson_job_template
>     stage: build
>     image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
>     cache:
> @@ -60,7 +75,7 @@
>         - build/**/*.c.o.d
>   
>   .common_test_job_template:
> -  extends: .base_job_template
> +  extends: .meson_job_template
>     stage: test
>     image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
>     script:
> @@ -87,14 +102,7 @@
>       # Prevent logs from the build job that run earlier
>       # from being duplicated in the test job artifacts
>       - rm -f build/meson-logs/*
> -  artifacts:
> -    name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
> -    when: always
> -    expire_in: 7 days
> -    paths:
> -      - build/meson-logs
> -    reports:
> -      junit: build/meson-logs/*.junit.xml
> +
>   
>   .functional_test_job_template:
>     extends: .common_test_job_template
> @@ -125,7 +133,7 @@
>       QEMU_JOB_FUNCTIONAL: 1
>   
>   .wasm_build_job_template:
> -  extends: .base_job_template
> +  extends: .meson_job_template
>     stage: build
>     image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
>     before_script:
> diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
> index 6ad3594522..4b20429c7f 100644
> --- a/.gitlab-ci.d/buildtest.yml
> +++ b/.gitlab-ci.d/buildtest.yml
> @@ -652,7 +652,9 @@ build-tci:
>   
>   # Check our reduced build configurations
>   build-without-defaults:
> -  extends: .native_build_job_template
> +  extends:
> +    - .native_build_job_template
> +    - .native_build_artifact_template

Why do we need native_build_artifact_template here?

  Thomas


Re: [PATCH v5 01/15] gitlab: ensure all meson jobs capture build/meson-logs by default
Posted by Daniel P. Berrangé 1 month, 1 week ago
On Wed, Mar 04, 2026 at 03:45:55PM +0100, Thomas Huth wrote:
> On 04/03/2026 15.21, Daniel P. Berrangé wrote:
> > The build-without-defaults and build-tci jobs do not capture any
> > artifacts, despite running 'make check'. This has proved a repeated
> > bug with CI jobs, so introduce a new '.meson_job_template' rule
> > which always captures 'build/meson-logs'. Jobs can still provide
> > their own 'artifacts:' config which will override this default
> > behaviour.
> > 
> > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> > ---
> >   .gitlab-ci.d/buildtest-template.yml | 30 ++++++++++++++++++-----------
> >   .gitlab-ci.d/buildtest.yml          |  4 +++-
> >   2 files changed, 22 insertions(+), 12 deletions(-)
> > 
> > diff --git a/.gitlab-ci.d/buildtest-template.yml b/.gitlab-ci.d/buildtest-template.yml
> > index d866cb12bb..005058625e 100644
> > --- a/.gitlab-ci.d/buildtest-template.yml
> > +++ b/.gitlab-ci.d/buildtest-template.yml
> > @@ -1,5 +1,20 @@
> > -.native_build_job_template:
> > +
> > +# Any job running meson should capture meson logs
> > +# by default. Some jobs might override the artifacts
> > +# to capture further files
> > +.meson_job_template:
> >     extends: .base_job_template
> > +  artifacts:
> > +    name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
> > +    when: always
> > +    expire_in: 7 days
> > +    paths:
> > +      - build/meson-logs
> > +    reports:
> > +      junit: build/meson-logs/*.junit.xml
> > +
> > +.native_build_job_template:
> > +  extends: .meson_job_template
> >     stage: build
> >     image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
> >     cache:
> > @@ -60,7 +75,7 @@
> >         - build/**/*.c.o.d
> >   .common_test_job_template:
> > -  extends: .base_job_template
> > +  extends: .meson_job_template
> >     stage: test
> >     image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
> >     script:
> > @@ -87,14 +102,7 @@
> >       # Prevent logs from the build job that run earlier
> >       # from being duplicated in the test job artifacts
> >       - rm -f build/meson-logs/*
> > -  artifacts:
> > -    name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
> > -    when: always
> > -    expire_in: 7 days
> > -    paths:
> > -      - build/meson-logs
> > -    reports:
> > -      junit: build/meson-logs/*.junit.xml
> > +
> >   .functional_test_job_template:
> >     extends: .common_test_job_template
> > @@ -125,7 +133,7 @@
> >       QEMU_JOB_FUNCTIONAL: 1
> >   .wasm_build_job_template:
> > -  extends: .base_job_template
> > +  extends: .meson_job_template
> >     stage: build
> >     image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:$QEMU_CI_CONTAINER_TAG
> >     before_script:
> > diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
> > index 6ad3594522..4b20429c7f 100644
> > --- a/.gitlab-ci.d/buildtest.yml
> > +++ b/.gitlab-ci.d/buildtest.yml
> > @@ -652,7 +652,9 @@ build-tci:
> >   # Check our reduced build configurations
> >   build-without-defaults:
> > -  extends: .native_build_job_template
> > +  extends:
> > +    - .native_build_job_template
> > +    - .native_build_artifact_template
> 
> Why do we need native_build_artifact_template here?

Sigh, that's a leftover a previous iteration of the patch before I
decided to change the base job template. 

With regards,
Daniel
-- 
|: https://berrange.com       ~~        https://hachyderm.io/@berrange :|
|: https://libvirt.org          ~~          https://entangle-photo.org :|
|: https://pixelfed.art/berrange   ~~    https://fstop138.berrange.com :|