[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v1 29/33] gitlab: convert Cirrus jobs to .base_job_template
From: |
Alex Bennée |
Subject: |
[PATCH v1 29/33] gitlab: convert Cirrus jobs to .base_job_template |
Date: |
Fri, 27 May 2022 16:35:59 +0100 |
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>
---
docs/devel/ci-jobs.rst.inc | 14 ++++++++++++++
.gitlab-ci.d/base.yml | 9 +++++++++
.gitlab-ci.d/cirrus.yml | 16 ++++++++--------
3 files changed, 31 insertions(+), 8 deletions(-)
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
- Re: [PATCH v1 06/33] tests/docker: update debian-armhf-cross with lcitool, (continued)
- [PATCH v1 12/33] configure: do not define or use the CPP variable, Alex Bennée, 2022/05/27
- [PATCH v1 10/33] tests/docker: update debian-ppc64el-cross with lcitool, Alex Bennée, 2022/05/27
- [PATCH v1 14/33] build: add a more generic way to specify make->ninja dependencies, Alex Bennée, 2022/05/27
- [PATCH v1 07/33] tests/docker: update debian-armel-cross with lcitool, Alex Bennée, 2022/05/27
- [PATCH v1 26/33] configure: enable cross compilation of vof, Alex Bennée, 2022/05/27
- [PATCH v1 18/33] tests/tcg: merge configure.sh back into main configure script, Alex Bennée, 2022/05/27
- [PATCH v1 17/33] tests/tcg: correct target CPU for sparc32, Alex Bennée, 2022/05/27
- [PATCH v1 29/33] gitlab: convert Cirrus jobs to .base_job_template,
Alex Bennée <=
- [PATCH v1 15/33] build: do a full build before running TCG tests, Alex Bennée, 2022/05/27
- [PATCH v1 27/33] configure: remove unused variables from config-host.mak, Alex Bennée, 2022/05/27
- [PATCH v1 20/33] configure: handle host compiler in probe_target_compiler, Alex Bennée, 2022/05/27
- [PATCH v1 23/33] configure: move symlink configuration earlier, Alex Bennée, 2022/05/27
- [PATCH v1 25/33] configure: enable cross-compilation of optionrom, Alex Bennée, 2022/05/27
- [PATCH v1 13/33] build: clean up ninja invocation, Alex Bennée, 2022/05/27
- [PATCH v1 11/33] tests/docker: update debian-amd64 with lcitool, Alex Bennée, 2022/05/27