From: "Alex Bennée" <alex.bennee@linaro.org>
To: peter.maydell@linaro.org, richard.henderson@linaro.org
Cc: qemu-devel@nongnu.org, "Daniel P. Berrangé" <berrange@redhat.com>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Thomas Huth" <thuth@redhat.com>,
"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
"Beraldo Leal" <bleal@redhat.com>
Subject: [PULL 29/33] gitlab: convert Cirrus jobs to .base_job_template
Date: Wed, 1 Jun 2022 19:05:33 +0100 [thread overview]
Message-ID: <20220601180537.2329566-30-alex.bennee@linaro.org> (raw)
In-Reply-To: <20220601180537.2329566-1-alex.bennee@linaro.org>
From: Daniel P. Berrangé <berrange@redhat.com>
This folds the Cirrus job rules into the base job
template, introducing two new variables
- QEMU_JOB_CIRRUS - identifies the job as making
use of Cirrus CI via cirrus-run
- QEMU_JOB_OPTIONAL - identifies the job as one
that is not run by default, primarily due to
resource constraints. It can be manually invoked
by users if they wish to validate that scenario.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20220526110705.59952-3-berrange@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20220527153603.887929-30-alex.bennee@linaro.org>
diff --git a/docs/devel/ci-jobs.rst.inc b/docs/devel/ci-jobs.rst.inc
index eb6a9e6122..a539f502da 100644
--- a/docs/devel/ci-jobs.rst.inc
+++ b/docs/devel/ci-jobs.rst.inc
@@ -52,6 +52,20 @@ Maintainer controlled job variables
The following variables may be set when defining a job in the
CI configuration file.
+QEMU_JOB_CIRRUS
+~~~~~~~~~~~~~~~
+
+The job makes use of Cirrus CI infrastructure, requiring the
+configuration setup for cirrus-run to be present in the repository
+
+QEMU_JOB_OPTIONAL
+~~~~~~~~~~~~~~~~~
+
+The job is expected to be successful in general, but is not run
+by default due to need to conserve limited CI resources. It is
+available to be started manually by the contributor in the CI
+pipelines UI.
+
Contributor controlled runtime variables
----------------------------------------
diff --git a/.gitlab-ci.d/base.yml b/.gitlab-ci.d/base.yml
index 10eb6ab8bc..5734caf9fe 100644
--- a/.gitlab-ci.d/base.yml
+++ b/.gitlab-ci.d/base.yml
@@ -12,12 +12,21 @@
# want jobs to run
#############################################################
+ # Cirrus jobs can't run unless the creds / target repo are set
+ - if: '$QEMU_JOB_CIRRUS && ($CIRRUS_GITHUB_REPO == "" || $CIRRUS_API_TOKEN == "")'
+ when: never
+
#############################################################
# Stage 2: fine tune execution of jobs in specific scenarios
# where the catch all logic is inapprorpaite
#############################################################
+ # Optional jobs should not be run unless manually triggered
+ - if: '$QEMU_JOB_OPTIONAL'
+ when: manual
+ allow_failure: true
+
#############################################################
# Stage 3: catch all logic applying to any job not matching
diff --git a/.gitlab-ci.d/cirrus.yml b/.gitlab-ci.d/cirrus.yml
index b96b22e269..609c364308 100644
--- a/.gitlab-ci.d/cirrus.yml
+++ b/.gitlab-ci.d/cirrus.yml
@@ -11,6 +11,7 @@
# special care, because we can't just override it at the GitLab CI job
# definition level or we risk breaking it completely.
.cirrus_build_job:
+ extends: .base_job_template
stage: build
image: registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:master
needs: []
@@ -40,11 +41,8 @@
<.gitlab-ci.d/cirrus/build.yml >.gitlab-ci.d/cirrus/$NAME.yml
- cat .gitlab-ci.d/cirrus/$NAME.yml
- cirrus-run -v --show-build-log always .gitlab-ci.d/cirrus/$NAME.yml
- rules:
- # Allow on 'staging' branch and 'stable-X.Y-staging' branches only
- - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH !~ /staging/'
- when: never
- - if: "$CIRRUS_GITHUB_REPO && $CIRRUS_API_TOKEN"
+ variables:
+ QEMU_JOB_CIRRUS: 1
x64-freebsd-12-build:
extends: .cirrus_build_job
@@ -90,11 +88,11 @@ x64-macos-11-base-build:
# The following jobs run VM-based tests via KVM on a Linux-based Cirrus-CI job
.cirrus_kvm_job:
+ extends: .base_job_template
stage: build
image: registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:master
needs: []
timeout: 80m
- allow_failure: true
script:
- sed -e "s|[@]CI_REPOSITORY_URL@|$CI_REPOSITORY_URL|g"
-e "s|[@]CI_COMMIT_REF_NAME@|$CI_COMMIT_REF_NAME|g"
@@ -105,8 +103,10 @@ x64-macos-11-base-build:
<.gitlab-ci.d/cirrus/kvm-build.yml >.gitlab-ci.d/cirrus/$NAME.yml
- cat .gitlab-ci.d/cirrus/$NAME.yml
- cirrus-run -v --show-build-log always .gitlab-ci.d/cirrus/$NAME.yml
- rules:
- - when: manual
+ variables:
+ QEMU_JOB_CIRRUS: 1
+ QEMU_JOB_OPTIONAL: 1
+
x86-netbsd:
extends: .cirrus_kvm_job
--
2.30.2
next prev parent reply other threads:[~2022-06-01 18:34 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-01 18:05 [PULL 00/33] testing updates (gitlab, junit, lcitool, x-compile) Alex Bennée
2022-06-01 18:05 ` [PULL 01/33] .gitlab-ci.d/container-cross: Fix RISC-V container dependencies / stages Alex Bennée
2022-06-01 18:05 ` [PULL 02/33] .gitlab-ci.d/crossbuilds: Fix the dependency of the cross-i386-tci job Alex Bennée
2022-06-01 18:05 ` [PULL 03/33] gitlab-ci: add meson JUnit test result into report Alex Bennée
2022-06-01 18:05 ` [PULL 04/33] meson.build: fix summary display of test compilers Alex Bennée
2022-06-01 18:05 ` [PULL 05/33] tests/lcitool: fix up indentation to correct style Alex Bennée
2022-06-01 18:05 ` [PULL 06/33] tests/docker: update debian-armhf-cross with lcitool Alex Bennée
2022-06-01 18:05 ` [PULL 07/33] tests/docker: update debian-armel-cross " Alex Bennée
2022-06-01 18:05 ` [PULL 08/33] tests/docker: update debian-mipsel-cross " Alex Bennée
2022-06-01 18:05 ` [PULL 09/33] tests/docker: update debian-mips64el-cross " Alex Bennée
2022-06-01 18:05 ` [PULL 10/33] tests/docker: update debian-ppc64el-cross " Alex Bennée
2022-06-01 18:05 ` [PULL 11/33] tests/docker: update debian-amd64 " Alex Bennée
2022-06-01 18:05 ` [PULL 12/33] configure: do not define or use the CPP variable Alex Bennée
2022-06-01 18:05 ` [PULL 13/33] build: clean up ninja invocation Alex Bennée
2022-06-01 18:05 ` [PULL 14/33] build: add a more generic way to specify make->ninja dependencies Alex Bennée
2022-06-01 18:05 ` [PULL 15/33] build: do a full build before running TCG tests Alex Bennée
2022-06-01 18:05 ` [PULL 16/33] configure, meson: move symlinking of ROMs to meson Alex Bennée
2022-06-01 18:05 ` [PULL 17/33] tests/tcg: correct target CPU for sparc32 Alex Bennée
2022-06-01 18:05 ` [PULL 18/33] tests/tcg: merge configure.sh back into main configure script Alex Bennée
2022-06-01 18:05 ` [PULL 19/33] configure: add missing cross compiler fallbacks Alex Bennée
2022-06-01 18:05 ` [PULL 20/33] configure: handle host compiler in probe_target_compiler Alex Bennée
2022-06-15 11:57 ` Matheus Kowalczuk Ferst
2022-06-16 1:20 ` Alex Bennée
2022-06-17 10:12 ` Paolo Bonzini
2022-06-20 16:41 ` Matheus Kowalczuk Ferst
2022-06-21 1:38 ` Richard Henderson
2022-06-21 16:58 ` Paolo Bonzini
2022-06-21 18:30 ` Richard Henderson
2022-06-22 8:39 ` Paolo Bonzini
2022-06-01 18:05 ` [PULL 21/33] configure: introduce --cross-prefix-*= Alex Bennée
2022-06-01 18:05 ` [PULL 22/33] configure: include more binutils in tests/tcg makefile Alex Bennée
2022-06-01 18:05 ` [PULL 23/33] configure: move symlink configuration earlier Alex Bennée
2022-06-01 18:05 ` [PULL 24/33] configure: enable cross-compilation of s390-ccw Alex Bennée
2022-06-01 18:05 ` [PULL 25/33] configure: enable cross-compilation of optionrom Alex Bennée
2022-06-01 18:05 ` [PULL 26/33] configure: enable cross compilation of vof Alex Bennée
2022-06-01 18:05 ` [PULL 27/33] configure: remove unused variables from config-host.mak Alex Bennée
2022-06-01 18:05 ` [PULL 28/33] gitlab: introduce a common base job template Alex Bennée
2022-06-01 18:05 ` Alex Bennée [this message]
2022-06-01 18:05 ` [PULL 30/33] gitlab: convert static checks to .base_job_template Alex Bennée
2022-06-01 18:05 ` [PULL 31/33] gitlab: convert build/container jobs " Alex Bennée
2022-06-01 18:05 ` [PULL 32/33] gitlab: don't run CI jobs in forks by default Alex Bennée
2022-06-02 10:50 ` Philippe Mathieu-Daudé via
2022-06-06 11:01 ` Daniel P. Berrangé
2022-06-01 18:05 ` [PULL 33/33] docs/devel: clean-up the CI links in the docs Alex Bennée
2022-06-01 21:21 ` [PULL 00/33] testing updates (gitlab, junit, lcitool, x-compile) Richard Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220601180537.2329566-30-alex.bennee@linaro.org \
--to=alex.bennee@linaro.org \
--cc=berrange@redhat.com \
--cc=bleal@redhat.com \
--cc=f4bug@amsat.org \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=thuth@redhat.com \
--cc=wainersm@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).