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 <marmarek@invisiblethingslab.com>
---
.gitlab-ci.yml | 2 ++
automation/gitlab-ci/build.yaml | 25 +++++++++++++++++++++++++
2 files changed, 27 insertions(+)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2124e3a79eef..f42a9abeaaaf 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 b69bad9202c2..f4e277780311 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -13,6 +13,14 @@
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: |
@@ -496,6 +520,7 @@ debian-bookworm-gcc-cppcheck:
debian-bookworm-gcc-arm32-cppcheck:
extends: .gcc-arm32-cross-build
+ <<: *build-test
variables:
CONTAINER: debian:bookworm-cppcheck
CROSS_COMPILE: /usr/bin/arm-linux-gnueabihf-
--
git-series 0.9.1
© 2016 - 2026 Red Hat, Inc.