.gitlab-ci.yml | 1 + automation/gitlab-ci/analyze.yaml | 5 +++-- automation/gitlab-ci/build.yaml | 9 ++++++--- 3 files changed, 10 insertions(+), 5 deletions(-)
Filtering jobs using the selected jobs regex is missing for
qemu-export + yocto jobs when running regular pipelines and eclair jobs
when running scheduled pipelines.
First, set a default value for the selected jobs regex to remove the
need to always check if the variable is empty.
Then add the missing rules to filter out those jobs.
Signed-off-by: Victor Lira <victorm.lira@amd.com>
---
changes v2:
- rebase onto staging
with SELECTED_JOBS_ONLY="/alpine-3.18-gcc$/" ...
before push: https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2212050840
after push: https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2212063969
before schedule: https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2212068543
after schedule: https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2212066703
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Doug Goldstein <cardoe@cardoe.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
---
.gitlab-ci.yml | 1 +
automation/gitlab-ci/analyze.yaml | 5 +++--
automation/gitlab-ci/build.yaml | 9 ++++++---
3 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7974ac4e82..64bed300a6 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,6 +2,7 @@ variables:
XEN_REGISTRY: registry.gitlab.com/xen-project/xen
SELECTED_JOBS_ONLY:
description: "Regex to select only some jobs, must be enclosed with /. For example /job1|job2/"
+ value: "/.*/"
workflow:
name: "$CI_PIPELINE_SCHEDULE_DESCRIPTION"
diff --git a/automation/gitlab-ci/analyze.yaml b/automation/gitlab-ci/analyze.yaml
index e9a8f9d544..a472692fcb 100644
--- a/automation/gitlab-ci/analyze.yaml
+++ b/automation/gitlab-ci/analyze.yaml
@@ -31,8 +31,7 @@
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
when: never
- - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
- - if: $SELECTED_JOBS_ONLY
+ - if: $CI_JOB_NAME !~ $SELECTED_JOBS_ONLY
when: never
- if: $WTOKEN && $CI_PROJECT_PATH =~ /^xen-project\/people\/.*$/
when: manual
@@ -172,6 +171,8 @@ eclair-ARM64-amd:
rules:
- if: $CI_PIPELINE_SOURCE != "schedule"
when: never
+ - if: $CI_JOB_NAME !~ $SELECTED_JOBS_ONLY
+ when: never
- !reference [.eclair-analysis, rules]
eclair-x86_64-allrules:on-schedule:
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 4cb52fe597..e9e04e37d4 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -226,6 +226,9 @@
- binaries/
when: always
needs: []
+ rules:
+ - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
+ when: manual
.yocto-test-arm64:
extends: .yocto-test
@@ -261,6 +264,9 @@
.test-jobs-artifact-common:
stage: build
needs: []
+ rules:
+ - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
+ when: on_success
# Arm test artifacts
@@ -468,20 +474,17 @@ yocto-qemuarm64:
extends: .yocto-test-arm64
variables:
YOCTO_BOARD: qemuarm64
- when: manual
yocto-qemuarm:
extends: .yocto-test-arm64
variables:
YOCTO_BOARD: qemuarm
YOCTO_OUTPUT: --copy-output
- when: manual
yocto-qemux86-64:
extends: .yocto-test-x86-64
variables:
YOCTO_BOARD: qemux86-64
- when: manual
# Cppcheck analysis jobs
--
2.51.GIT
The original yocto config had a hidden default of allow_failure: true for the
manual job while the hidden default for rules is false. This causes the
stages with manual jobs to show as blocked.
Set it explicitly to true to avoid the analyze and build stages being shown as
blocked.
Fixes: 485ab1b5db0f358625fafe2df4e41e3ef008aed8
Signed-off-by: Victor Lira <victorm.lira@amd.com>
---
https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2212386023
(stuck because of hardware jobs)
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Doug Goldstein <cardoe@cardoe.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
---
automation/gitlab-ci/build.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index e9e04e37d4..f7e032320a 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -229,6 +229,7 @@
rules:
- if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
when: manual
+ allow_failure: true
.yocto-test-arm64:
extends: .yocto-test
--
2.51.GIT
On Fri, 12 Dec 2025, Victor Lira wrote: > The original yocto config had a hidden default of allow_failure: true for the > manual job while the hidden default for rules is false. This causes the > stages with manual jobs to show as blocked. > > Set it explicitly to true to avoid the analyze and build stages being shown as > blocked. > > Fixes: 485ab1b5db0f358625fafe2df4e41e3ef008aed8 > Signed-off-by: Victor Lira <victorm.lira@amd.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
The selected jobs regex was assumed to be possibly empty in some places
and setting a default value for the regex caused the hardware jobs to
bypass some rules checks.
To fix this, adjust the rules to remove the check for empty and
instead just match the regex.
Fixes: 485ab1b5db0f358625fafe2df4e41e3ef008aed8
Signed-off-by: Victor Lira <victorm.lira@amd.com>
---
https://gitlab.com/xen-project/people/sstabellini/xen/-/pipelines/2212446508
https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2212446409
---
automation/gitlab-ci/build.yaml | 7 ++-----
automation/gitlab-ci/test.yaml | 27 +++++++++++----------------
2 files changed, 13 insertions(+), 21 deletions(-)
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index f7e032320a..a6fc55c2d5 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -13,11 +13,8 @@
when: always
needs: []
rules:
- - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
- when: always
- - if: $SELECTED_JOBS_ONLY
- when: never
- - when: on_success
+ - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
+ when: on_success
.gcc-tmpl:
variables: &gcc
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 8d8f62c8d0..338fc99a8a 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -2,10 +2,8 @@
stage: test
image: ${XEN_REGISTRY}/${CONTAINER}
rules:
- - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
- - if: $SELECTED_JOBS_ONLY
- when: never
- - when: on_success
+ - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
+ when: on_success
.arm64-test-needs: &arm64-test-needs
- project: xen-project/hardware/test-artifacts
@@ -113,10 +111,9 @@
- '*.dtb'
when: always
rules:
- - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
- - if: $SELECTED_JOBS_ONLY
- when: never
- - if: $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
+ - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY && $XILINX_JOBS == "true"
+ && $CI_COMMIT_REF_PROTECTED == "true"
+ when: on_success
tags:
- xilinx
@@ -134,10 +131,9 @@
- '*.log'
when: always
rules:
- - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
- - if: $SELECTED_JOBS_ONLY
- when: never
- - if: $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
+ - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY && $XILINX_JOBS == "true"
+ && $CI_COMMIT_REF_PROTECTED == "true"
+ when: on_success
tags:
- xilinx
@@ -157,10 +153,9 @@
- '*.log'
when: always
rules:
- - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
- - if: $SELECTED_JOBS_ONLY
- when: never
- - if: $QUBES_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
+ - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY && $QUBES_JOBS == "true"
+ && $CI_COMMIT_REF_PROTECTED == "true"
+ when: on_success
tags:
- qubes-hw2
--
2.51.GIT
On 2025-12-13 02:30, Victor Lira wrote:
> The selected jobs regex was assumed to be possibly empty in some places
> and setting a default value for the regex caused the hardware jobs to
> bypass some rules checks.
>
> To fix this, adjust the rules to remove the check for empty and
> instead just match the regex.
>
> Fixes: 485ab1b5db0f358625fafe2df4e41e3ef008aed8
nit: the format should be
Fixes: 485ab1b5db0f ("automation: edit pipeline to prevent running
non-selected jobs")
> Signed-off-by: Victor Lira <victorm.lira@amd.com>
> ---
> https://gitlab.com/xen-project/people/sstabellini/xen/-/pipelines/2212446508
> https://gitlab.com/xen-project/people/victormlira/xen/-/pipelines/2212446409
> ---
> automation/gitlab-ci/build.yaml | 7 ++-----
> automation/gitlab-ci/test.yaml | 27 +++++++++++----------------
> 2 files changed, 13 insertions(+), 21 deletions(-)
>
> diff --git a/automation/gitlab-ci/build.yaml
> b/automation/gitlab-ci/build.yaml
> index f7e032320a..a6fc55c2d5 100644
> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -13,11 +13,8 @@
> when: always
> needs: []
> rules:
> - - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
> - when: always
> - - if: $SELECTED_JOBS_ONLY
> - when: never
> - - when: on_success
> + - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
> + when: on_success
>
> .gcc-tmpl:
> variables: &gcc
> diff --git a/automation/gitlab-ci/test.yaml
> b/automation/gitlab-ci/test.yaml
> index 8d8f62c8d0..338fc99a8a 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -2,10 +2,8 @@
> stage: test
> image: ${XEN_REGISTRY}/${CONTAINER}
> rules:
> - - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
> - - if: $SELECTED_JOBS_ONLY
> - when: never
> - - when: on_success
> + - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
> + when: on_success
>
> .arm64-test-needs: &arm64-test-needs
> - project: xen-project/hardware/test-artifacts
> @@ -113,10 +111,9 @@
> - '*.dtb'
> when: always
> rules:
> - - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
> - - if: $SELECTED_JOBS_ONLY
> - when: never
> - - if: $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
> + - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY && $XILINX_JOBS ==
> "true"
> + && $CI_COMMIT_REF_PROTECTED == "true"
> + when: on_success
> tags:
> - xilinx
>
> @@ -134,10 +131,9 @@
> - '*.log'
> when: always
> rules:
> - - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
> - - if: $SELECTED_JOBS_ONLY
> - when: never
> - - if: $XILINX_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
> + - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY && $XILINX_JOBS ==
> "true"
> + && $CI_COMMIT_REF_PROTECTED == "true"
> + when: on_success
> tags:
> - xilinx
>
> @@ -157,10 +153,9 @@
> - '*.log'
> when: always
> rules:
> - - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
> - - if: $SELECTED_JOBS_ONLY
> - when: never
> - - if: $QUBES_JOBS == "true" && $CI_COMMIT_REF_PROTECTED == "true"
> + - if: $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY && $QUBES_JOBS == "true"
> + && $CI_COMMIT_REF_PROTECTED == "true"
> + when: on_success
> tags:
> - qubes-hw2
>
> --
> 2.51.GIT
--
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253
On Sat, 13 Dec 2025, Victor Lira wrote: > The selected jobs regex was assumed to be possibly empty in some places > and setting a default value for the regex caused the hardware jobs to > bypass some rules checks. > > To fix this, adjust the rules to remove the check for empty and > instead just match the regex. > > Fixes: 485ab1b5db0f358625fafe2df4e41e3ef008aed8 > Signed-off-by: Victor Lira <victorm.lira@amd.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
© 2016 - 2025 Red Hat, Inc.