Files
xen/.gitlab-ci.yml
T
Marek Marczykowski-Górecki 9d419afa46 automation: allow selecting individual jobs via CI variables
Debugging sometimes involves running specific jobs on different
versions. It's useful to easily avoid running all of the not interesting
ones (for given case) to save both time and CI resources. Doing so used
to require changing the yaml files, usually in several places.
Ease this step by adding SELECTED_JOBS_ONLY variable that takes a regex.
Note that one needs to satisfy job dependencies on their own (for
example if a test job needs a build job, that specific build job
needs to be included too).

The variable can be specified via Gitlab web UI when scheduling a
pipeline, but it can be also set when doing git push directly:

    git push -o ci.variable=SELECTED_JOBS_ONLY="/job1|job2/"

More details at https://docs.gitlab.co.jp/ee/user/project/push_options.html

The variable needs to include regex for selecting jobs, including
enclosing slashes.
A coma/space separated list of jobs to select would be friendlier UX,
but unfortunately that is not supported:
https://gitlab.com/gitlab-org/gitlab/-/issues/209904 (note the proposed
workaround doesn't work for job-level CI_JOB_NAME).
On the other hand, the regex is more flexible (one can select for
example all arm32 jobs).

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
2025-03-03 16:15:38 -08:00

31 lines
798 B
YAML

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/"
workflow:
rules:
- if: $CI_COMMIT_BRANCH =~ /^(master|smoke|^coverity-tested\/.*|stable-.*)$/
when: never
- when: always
stages:
- containers
- analyze
- build
- test
include:
- local: 'automation/gitlab-ci/containers.yaml'
rules:
- if: $XEN_CI_REBUILD_CONTAINERS
- local: 'automation/gitlab-ci/analyze.yaml'
rules:
- if: $XEN_CI_REBUILD_CONTAINERS == null
- local: 'automation/gitlab-ci/build.yaml'
rules:
- if: $XEN_CI_REBUILD_CONTAINERS == null
- local: 'automation/gitlab-ci/test.yaml'
rules:
- if: $XEN_CI_REBUILD_CONTAINERS == null