mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
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>
31 lines
798 B
YAML
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
|