lcitool: remove Cirrus CI support
Remove GitLab CI integration for Cirrus CI now that nothing uses it anymore. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com> Reviewed-by: Warner Losh <imp@bsdimp.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-id: 20260602162457.828969-3-stefanha@redhat.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Stefan Hajnoczi committed
Jun 2, 2026 at 12:24 UTC
29c042c6e9d4a09d4a0ac3fa54aeb7ee08ce0bdc
8 files changed
+2
-147
.gitlab-ci.d/base.yml
-4
@@ -52,10 +52,6 @@ variables:
52
- if: '$CI_PIPELINE_SOURCE == "schedule"'
53
when: never
54
55
- # Cirrus jobs can't run unless the creds / target repo are set
56
- - if: '$QEMU_JOB_CIRRUS && ($CIRRUS_GITHUB_REPO == null || $CIRRUS_API_TOKEN == null)'
57
- when: never
58
-
55
# Publishing jobs should only run on the default branch in upstream
56
- if: '$QEMU_JOB_PUBLISH == "1" && $CI_PROJECT_NAMESPACE == $QEMU_CI_UPSTREAM && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH'
57
when: never
.gitlab-ci.d/cirrus.yml
deleted
-32
@@ -1,32 +0,0 @@
1
-# Jobs that we delegate to Cirrus CI because they require an operating
2
-# system other than Linux. These jobs will only run if the required
3
-# setup has been performed on the GitLab account.
4
-#
5
-# The Cirrus CI configuration is generated by replacing target-specific
6
-# variables in a generic template: some of these variables are provided
7
-# when the GitLab CI job is defined, others are taken from a shell
8
-# snippet generated using lcitool.
9
-#
10
-# Note that the $PATH environment variable has to be treated with
11
-# special care, because we can't just override it at the GitLab CI job
12
-# definition level or we risk breaking it completely.
13
-.cirrus_build_job:
14
- extends: .base_job_template
15
- stage: build
16
- image: registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:latest
17
- needs: []
18
- allow_failure:
19
- exit_codes: 3
20
- # 20 mins larger than "timeout_in" in cirrus/build.yml
21
- # as there's often a 5-10 minute delay before Cirrus CI
22
- # actually starts the task
23
- timeout: 80m
24
- script:
25
- - set -o allexport
26
- - source .gitlab-ci.d/cirrus/$NAME.vars
27
- - set +o allexport
28
- - cirrus-vars <.gitlab-ci.d/cirrus/build.yml >.gitlab-ci.d/cirrus/$NAME.yml
29
- - cat .gitlab-ci.d/cirrus/$NAME.yml
30
- - cirrus-run -v --show-build-log always .gitlab-ci.d/cirrus/$NAME.yml
31
- variables:
32
- QEMU_JOB_CIRRUS: 1
.gitlab-ci.d/cirrus/README.rst
deleted
-54
@@ -1,54 +0,0 @@
1
-Cirrus CI integration
2
-=====================
3
-
4
-GitLab CI shared runners only provide a docker environment running on Linux.
5
-While it is possible to provide private runners for non-Linux platforms this
6
-is not something most contributors/maintainers will wish to do.
7
-
8
-To work around this limitation, we take advantage of `Cirrus CI`_'s free
9
-offering: more specifically, we use the `cirrus-run`_ script to trigger Cirrus
10
-CI jobs from GitLab CI jobs so that Cirrus CI job output is integrated into
11
-the main GitLab CI pipeline dashboard.
12
-
13
-There is, however, some one-time setup required. If you want FreeBSD and macOS
14
-builds to happen when you push to your GitLab repository, you need to
15
-
16
-* set up a GitHub repository for the project, eg. ``yourusername/qemu``.
17
- This repository needs to exist for cirrus-run to work, but it doesn't need to
18
- be kept up to date, so you can create it and then forget about it;
19
-
20
-* enable the `Cirrus CI GitHub app`_ for your GitHub account;
21
-
22
-* sign up for Cirrus CI. It's enough to log into the website using your GitHub
23
- account;
24
-
25
-* grab an API token from the `Cirrus CI settings`_ page;
26
-
27
-* it may be necessary to push an empty ``.cirrus.yml`` file to your github fork
28
- for Cirrus CI to properly recognize the project. You can check whether
29
- Cirrus CI knows about your project by navigating to:
30
-
31
- ``https://cirrus-ci.com/yourusername/qemu``
32
-
33
-* in the *CI/CD / Variables* section of the settings page for your GitLab
34
- repository, create two new variables:
35
-
36
- * ``CIRRUS_GITHUB_REPO``, containing the name of the GitHub repository
37
- created earlier, eg. ``yourusername/qemu``;
38
-
39
- * ``CIRRUS_API_TOKEN``, containing the Cirrus CI API token generated earlier.
40
- This variable **must** be marked as *Masked*, because anyone with knowledge
41
- of it can impersonate you as far as Cirrus CI is concerned.
42
-
43
- Neither of these variables should be marked as *Protected*, because in
44
- general you'll want to be able to trigger Cirrus CI builds from non-protected
45
- branches.
46
-
47
-Once this one-time setup is complete, you can just keep pushing to your GitLab
48
-repository as usual and you'll automatically get the additional CI coverage.
49
-
50
-
51
-.. _Cirrus CI GitHub app: https://github.com/marketplace/cirrus-ci
52
-.. _Cirrus CI settings: https://cirrus-ci.com/settings/profile/
53
-.. _Cirrus CI: https://cirrus-ci.com/
54
-.. _cirrus-run: https://github.com/sio/cirrus-run/
.gitlab-ci.d/cirrus/build.yml
deleted
-42
@@ -1,42 +0,0 @@
1
-@CIRRUS_VM_INSTANCE_TYPE@:
2
- @CIRRUS_VM_IMAGE_SELECTOR@: @CIRRUS_VM_IMAGE_NAME@
3
- cpu: @CIRRUS_VM_CPUS@
4
- memory: @CIRRUS_VM_RAM@
5
-
6
-env:
7
- CIRRUS_CLONE_DEPTH: 1
8
- CI_REPOSITORY_URL: "@CI_REPOSITORY_URL@"
9
- CI_COMMIT_REF_NAME: "@CI_COMMIT_REF_NAME@"
10
- CI_COMMIT_SHA: "@CI_COMMIT_SHA@"
11
- PATH: "@PATH_EXTRA@:$PATH"
12
- PKG_CONFIG_PATH: "@PKG_CONFIG_PATH@"
13
- PYTHON: "@PYTHON@"
14
- MAKE: "@MAKE@"
15
- CONFIGURE_ARGS: "@CONFIGURE_ARGS@"
16
- TEST_TARGETS: "@TEST_TARGETS@"
17
-
18
-build_task:
19
- # A little shorter than GitLab timeout in ../cirrus.yml
20
- timeout_in: 60m
21
- install_script:
22
- - @UPDATE_COMMAND@
23
- - @INSTALL_COMMAND@ @PKGS@
24
- - if test -n "@PYPI_PKGS@" ; then PYLIB=$(@PYTHON@ -c 'import sysconfig; print(sysconfig.get_path("stdlib"))'); rm -f $PYLIB/EXTERNALLY-MANAGED; @PIP3@ install @PYPI_PKGS@ ; fi
25
- clone_script:
26
- - git clone --depth 100 "$CI_REPOSITORY_URL" .
27
- - git fetch origin "$CI_COMMIT_REF_NAME"
28
- - git reset --hard "$CI_COMMIT_SHA"
29
- step_script:
30
- - mkdir build
31
- - cd build
32
- - ../configure --enable-werror $CONFIGURE_ARGS
33
- || { cat config.log meson-logs/meson-log.txt; exit 1; }
34
- - $MAKE -j$(sysctl -n hw.ncpu)
35
- - for TARGET in $TEST_TARGETS ;
36
- do
37
- $MAKE -j$(sysctl -n hw.ncpu) $TARGET V=1 ;
38
- done
39
- always:
40
- build_result_artifacts:
41
- path: build/meson-logs/*log.txt
42
- type: text/plain
.gitlab-ci.d/qemu-project.yml
-1
@@ -17,6 +17,5 @@ include:
17
- local: '/.gitlab-ci.d/buildtest.yml'
18
- local: '/.gitlab-ci.d/static_checks.yml'
19
- local: '/.gitlab-ci.d/custom-runners.yml'
20
- - local: '/.gitlab-ci.d/cirrus.yml'
20
- local: '/.gitlab-ci.d/windows.yml'
21
- local: '/.gitlab-ci.d/macos.yml'
docs/devel/testing/ci-jobs.rst.inc
-6
@@ -91,12 +91,6 @@ Maintainer controlled job variables
91
The following variables may be set when defining a job in the
92
CI configuration file.
93
94
-QEMU_JOB_CIRRUS
95
-~~~~~~~~~~~~~~~
96
-
97
-The job makes use of Cirrus CI infrastructure, requiring the
98
-configuration setup for cirrus-run to be present in the repository
99
-
94
QEMU_JOB_OPTIONAL
95
~~~~~~~~~~~~~~~~~
96
docs/devel/testing/main.rst
+2
-2
@@ -551,8 +551,8 @@ mappings to distribution package names for a wide variety of third
551
party projects. ``lcitool`` applies the mappings to a list of build
552
pre-requisites in ``tests/lcitool/projects/qemu.yml``, determines the
553
list of native packages to install on each distribution, and uses them
554
-to generate build environments (dockerfiles and Cirrus CI variable files)
555
-that are consistent across OS distribution.
554
+to generate build environments (dockerfiles) that are consistent across OS
555
+distribution.
556
557
558
Adding new build pre-requisites
tests/lcitool/refresh
-6
@@ -81,12 +81,6 @@ def generate_dockerfile(host, target, project="qemu", cross=None, trailer=None,
81
generate(filename, cmd, trailer)
82
83
84
-def generate_cirrus(target, trailer=None):
85
- filename = Path(src_dir, ".gitlab-ci.d", "cirrus", target + ".vars")
86
- cmd = lcitool_cmd + ["variables", "--format", "shell", target, "qemu"]
87
- generate(filename, cmd, trailer)
88
-
89
-
84
def generate_vars(target, trailer=None):
85
filename = Path(src_dir, ".gitlab-ci.d", target + ".vars")
86
cmd = lcitool_cmd + ["variables", "--format", "shell", target, "qemu"]