From a183f7fbe7aa70e1acd25d59bfabc52cd0d711fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Wed, 1 Apr 2026 01:24:52 +0200 Subject: [PATCH] CI: introduce BUILD_FOR_TESTS_ONLY MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When the variable is set, only build jobs that are used in tests are scheduled. This saves a lot of time, for example when scheduling a test pipeline with alternative linux branch. Signed-off-by: Marek Marczykowski-Górecki Reviewed-by: Anthony PERARD --- .gitlab-ci.yml | 2 ++ automation/gitlab-ci/build.yaml | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2124e3a79e..f42a9abeaa 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,6 +3,8 @@ variables: SELECTED_JOBS_ONLY: description: "Regex to select only some jobs, must be enclosed with /. For example /job1|job2/" value: "/.*/" + BUILD_FOR_TESTS_ONLY: + description: "Include only build jobs necessary for running tests" ARTIFACTS_REPO: description: "Path to the test-artifacts repo" value: xen-project/hardware/test-artifacts diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml index b69bad9202..eff96beaa5 100644 --- a/automation/gitlab-ci/build.yaml +++ b/automation/gitlab-ci/build.yaml @@ -12,6 +12,14 @@ - '*/*.log' when: always needs: [] + rules: + - if: $BUILD_FOR_TESTS_ONLY + when: never + - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY + when: on_success + +# override BUILD_FOR_TESTS_ONLY exclusion +.build-test-tpl: &build-test rules: - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY when: on_success @@ -296,11 +304,13 @@ qemu-system-aarch64-6.0.0-arm32-export: alpine-3.18-gcc: extends: .gcc-x86-64-build + <<: *build-test variables: CONTAINER: alpine:3.18 alpine-3.18-gcc-debug: extends: .gcc-x86-64-build-debug + <<: *build-test variables: CONTAINER: alpine:3.18 BUILD_QEMU_XEN: y @@ -315,16 +325,19 @@ alpine-3.18-gcc-debug: debian-13-x86_64-gcc-debug: extends: .gcc-x86-64-build-debug + <<: *build-test variables: CONTAINER: debian:13-x86_64 debian-13-x86_64-clang-debug: extends: .clang-x86-64-build-debug + <<: *build-test variables: CONTAINER: debian:13-x86_64 debian-13-ppc64le-gcc-debug: extends: .gcc-ppc64le-cross-build-debug + <<: *build-test variables: CONTAINER: debian:13-ppc64le KBUILD_DEFCONFIG: ppc64_defconfig @@ -335,6 +348,7 @@ debian-13-ppc64le-gcc-debug: debian-13-riscv64-gcc-debug: extends: .gcc-riscv64-cross-build-debug + <<: *build-test variables: CONTAINER: debian:13-riscv64 KBUILD_DEFCONFIG: tiny64_defconfig @@ -347,12 +361,14 @@ debian-13-riscv64-gcc-debug: debian-bookworm-gcc-arm32: extends: .gcc-arm32-cross-build + <<: *build-test variables: CONTAINER: debian:bookworm-arm64v8-arm32-gcc HYPERVISOR_ONLY: y debian-bookworm-gcc-arm32-debug: extends: .gcc-arm32-cross-build-debug + <<: *build-test variables: CONTAINER: debian:bookworm-arm64v8-arm32-gcc HYPERVISOR_ONLY: y @@ -366,6 +382,7 @@ debian-bookworm-gcc-arm32-randconfig: debian-bookworm-gcc-arm32-debug-staticmem: extends: .gcc-arm32-cross-build-debug + <<: *build-test variables: CONTAINER: debian:bookworm-arm64v8-arm32-gcc HYPERVISOR_ONLY: y @@ -376,6 +393,7 @@ debian-bookworm-gcc-arm32-debug-staticmem: debian-bookworm-gcc-arm32-debug-earlyprintk: extends: .gcc-arm32-cross-build-debug + <<: *build-test variables: CONTAINER: debian:bookworm-arm64v8-arm32-gcc HYPERVISOR_ONLY: y @@ -407,11 +425,13 @@ debian-bookworm-gcc-debug-arm64: alpine-3.18-gcc-arm64: extends: .gcc-arm64-build + <<: *build-test variables: CONTAINER: alpine:3.18-arm64v8 alpine-3.18-gcc-debug-arm64: extends: .gcc-arm64-build-debug + <<: *build-test variables: CONTAINER: alpine:3.18-arm64v8 EXTRA_XEN_CONFIG: | @@ -426,6 +446,7 @@ alpine-3.18-gcc-arm64-randconfig: alpine-3.18-gcc-debug-arm64-staticmem: extends: .gcc-arm64-build-debug + <<: *build-test variables: CONTAINER: alpine:3.18-arm64v8 EXTRA_XEN_CONFIG: | @@ -435,6 +456,7 @@ alpine-3.18-gcc-debug-arm64-staticmem: alpine-3.18-gcc-debug-arm64-static-shared-mem: extends: .gcc-arm64-build-debug + <<: *build-test variables: CONTAINER: alpine:3.18-arm64v8 EXTRA_XEN_CONFIG: | @@ -444,6 +466,7 @@ alpine-3.18-gcc-debug-arm64-static-shared-mem: alpine-3.18-gcc-debug-arm64-boot-cpupools: extends: .gcc-arm64-build-debug + <<: *build-test variables: CONTAINER: alpine:3.18-arm64v8 EXTRA_XEN_CONFIG: | @@ -451,6 +474,7 @@ alpine-3.18-gcc-debug-arm64-boot-cpupools: alpine-3.18-gcc-debug-arm64-earlyprintk: extends: .gcc-arm64-build-debug + <<: *build-test variables: CONTAINER: alpine:3.18-arm64v8 EXTRA_XEN_CONFIG: |