@samitouri / QOSamiQemu / commits / 29c042c6e9

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"]