From: Michal Privoznik <[email protected]>

Cirrus CI shut down yesterday (2026-06-01) [1]. Stop running our
CI jobs there.

1: https://cirruslabs.org/
Signed-off-by: Michal Privoznik <[email protected]>
---
 ci/README.rst                 | 58 -----------------------------------
 ci/cirrus/build.yml           | 30 ------------------
 ci/cirrus/freebsd-14.vars     | 16 ----------
 ci/cirrus/freebsd-15.vars     | 16 ----------
 ci/cirrus/macos-14.vars       | 16 ----------
 ci/gitlab/build-templates.yml | 53 --------------------------------
 ci/gitlab/builds.yml          | 49 -----------------------------
 ci/manifest.yml               | 14 ++-------
 8 files changed, 3 insertions(+), 249 deletions(-)
 delete mode 100644 ci/cirrus/build.yml
 delete mode 100644 ci/cirrus/freebsd-14.vars
 delete mode 100644 ci/cirrus/freebsd-15.vars
 delete mode 100644 ci/cirrus/macos-14.vars

diff --git a/ci/README.rst b/ci/README.rst
index 85bfb09a8f..db1333b480 100644
--- a/ci/README.rst
+++ b/ci/README.rst
@@ -13,64 +13,6 @@ The behaviour of GitLab CI can be tuned through a number of 
variables
 which can be set at push time, or through the UI. See ``ci/gitlab.yml``
 for further details.
 
-Cirrus CI integration
-=====================
-
-libvirt currently supports three non-Linux operating systems: Windows, FreeBSD
-and macOS. Windows cross-builds can be prepared on Linux by using `MinGW-w64`_,
-but for both FreeBSD and macOS we need to use the actual operating system, and
-unfortunately GitLab shared runners are currently not available for either.
-
-To work around this limitation, we take advantage of `Cirrus CI`_'s free
-offering: more specifically, we use the `cirrus-run`_ script to trigger Cirrus
-CI jobs from GitLab CI jobs so that the workaround is almost entirely
-transparent to users and there's no need to constantly check two separate CI
-dashboards.
-
-There is, however, some one-time setup required. If you want FreeBSD and macOS
-builds to happen when you push to your GitLab repository, you need to
-
-* set up a GitHub repository for the project, eg. ``yourusername/libvirt``.
-  This repository needs to exist for cirrus-run to work, but it doesn't need to
-  be kept up to date, so you can create it and then forget about it;
-
-* enable the `Cirrus CI GitHub app`_  for your GitHub account;
-
-* sign up for Cirrus CI. It's enough to log into the website using your GitHub
-  account;
-
-* grab an API token from the `Cirrus CI settings`_ page;
-
-* it may be necessary to push an empty ``.cirrus.yml`` file to your github fork
-  for Cirrus CI to properly recognize the project. You can check whether
-  Cirrus CI knows about your project by navigating to:
-
-  ``https://cirrus-ci.com/yourusername/libvirt``
-
-* in the *CI/CD / Variables* section of the settings page for your GitLab
-  repository, create two new variables:
-
-  * ``CIRRUS_GITHUB_REPO``, containing the name of the GitHub repository
-    created earlier, eg. ``yourusername/libvirt``;
-
-  * ``CIRRUS_API_TOKEN``, containing the Cirrus CI API token generated earlier.
-    This variable **must** be marked as *Masked*, because anyone with knowledge
-    of it can impersonate you as far as Cirrus CI is concerned.
-
-  Neither of these variables should be marked as *Protected*, because in
-  general you'll want to be able to trigger Cirrus CI builds from non-protected
-  branches.
-
-Once this one-time setup is complete, you can just keep pushing to your GitLab
-repository as usual and you'll automatically get the additional CI coverage.
-
-
-.. _Cirrus CI GitHub app: https://github.com/marketplace/cirrus-ci
-.. _Cirrus CI settings: https://cirrus-ci.com/settings/profile/
-.. _Cirrus CI: https://cirrus-ci.com/
-.. _MinGW-w64: https://www.mingw-w64.org/
-.. _cirrus-run: https://github.com/sio/cirrus-run/
-
 
 Coverity scan integration
 =========================
diff --git a/ci/cirrus/build.yml b/ci/cirrus/build.yml
deleted file mode 100644
index c0ac05f4d9..0000000000
--- a/ci/cirrus/build.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-@CIRRUS_VM_INSTANCE_TYPE@:
-  @CIRRUS_VM_IMAGE_SELECTOR@: @CIRRUS_VM_IMAGE_NAME@
-
-env:
-  CI_REPOSITORY_URL: "@CI_REPOSITORY_URL@"
-  CI_COMMIT_REF_NAME: "@CI_COMMIT_REF_NAME@"
-  CI_MERGE_REQUEST_REF_PATH: "@CI_MERGE_REQUEST_REF_PATH@"
-  CI_COMMIT_SHA: "@CI_COMMIT_SHA@"
-  PATH: "@PATH_EXTRA@:$PATH"
-  PKG_CONFIG_PATH: "@PKG_CONFIG_PATH@"
-  PYTHON: "@PYTHON@"
-  MAKE: "@MAKE@"
-  VIR_TEST_VERBOSE: "1"
-  VIR_TEST_DEBUG: "1"
-
-build_task:
-  install_script:
-    - @UPDATE_COMMAND@
-    - @UPGRADE_COMMAND@
-    - @INSTALL_COMMAND@ @PKGS@
-    - if test -n "@PYPI_PKGS@" ; then @PIP3@ install --break-system-packages 
@PYPI_PKGS@ ; fi
-  clone_script:
-    - git clone --depth 100 "$CI_REPOSITORY_URL" .
-    - git fetch origin "${CI_MERGE_REQUEST_REF_PATH:-$CI_COMMIT_REF_NAME}"
-    - git reset --hard "$CI_COMMIT_SHA"
-  build_script:
-    - if test "$(uname)" = "Darwin"; then meson setup build --optimization 0; 
else meson setup build; fi
-    - meson dist -C build --no-tests
-    - meson compile -C build
-    - meson test -C build --no-suite syntax-check --print-errorlogs || (cat 
~/Library/Logs/DiagnosticReports/*.crash && exit 1)
diff --git a/ci/cirrus/freebsd-14.vars b/ci/cirrus/freebsd-14.vars
deleted file mode 100644
index b99c663efe..0000000000
--- a/ci/cirrus/freebsd-14.vars
+++ /dev/null
@@ -1,16 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-#  $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-CCACHE='/usr/local/bin/ccache'
-CPAN_PKGS=''
-CROSS_PKGS=''
-MAKE='/usr/local/bin/gmake'
-NINJA='/usr/local/bin/ninja'
-PACKAGING_COMMAND='pkg'
-PIP3='/usr/local/bin/pip'
-PKGS='augeas bash-completion ca_root_nss ccache4 codespell cppi curl 
cyrus-sasl diffutils fusefs-libs3 gettext git glib gmake gnugrep gnutls gsed 
json-c libpcap libpciaccess libssh libssh2 libxml2 libxslt meson ninja perl5 
pkgconf py311-black py311-docutils py311-flake8 py311-pytest python3 qemu 
readline'
-PYPI_PKGS=''
-PYTHON='/usr/local/bin/python3'
diff --git a/ci/cirrus/freebsd-15.vars b/ci/cirrus/freebsd-15.vars
deleted file mode 100644
index b99c663efe..0000000000
--- a/ci/cirrus/freebsd-15.vars
+++ /dev/null
@@ -1,16 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-#  $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-CCACHE='/usr/local/bin/ccache'
-CPAN_PKGS=''
-CROSS_PKGS=''
-MAKE='/usr/local/bin/gmake'
-NINJA='/usr/local/bin/ninja'
-PACKAGING_COMMAND='pkg'
-PIP3='/usr/local/bin/pip'
-PKGS='augeas bash-completion ca_root_nss ccache4 codespell cppi curl 
cyrus-sasl diffutils fusefs-libs3 gettext git glib gmake gnugrep gnutls gsed 
json-c libpcap libpciaccess libssh libssh2 libxml2 libxslt meson ninja perl5 
pkgconf py311-black py311-docutils py311-flake8 py311-pytest python3 qemu 
readline'
-PYPI_PKGS=''
-PYTHON='/usr/local/bin/python3'
diff --git a/ci/cirrus/macos-14.vars b/ci/cirrus/macos-14.vars
deleted file mode 100644
index 823de9e6a0..0000000000
--- a/ci/cirrus/macos-14.vars
+++ /dev/null
@@ -1,16 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-#  $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-CCACHE='/opt/homebrew/bin/ccache'
-CPAN_PKGS=''
-CROSS_PKGS=''
-MAKE='/opt/homebrew/bin/gmake'
-NINJA='/opt/homebrew/bin/ninja'
-PACKAGING_COMMAND='brew'
-PIP3='/opt/homebrew/bin/pip3'
-PKGS='augeas bash-completion black ccache codespell cppi curl diffutils 
docutils flake8 gettext git glib gnu-sed gnutls grep json-c libiscsi libpcap 
libssh libssh2 libxml2 libxslt make meson ninja perl pkg-config 
python-setuptools python3 qemu readline'
-PYPI_PKGS='pytest'
-PYTHON='/opt/homebrew/bin/python3'
diff --git a/ci/gitlab/build-templates.yml b/ci/gitlab/build-templates.yml
index fc5ddc7eb9..cbee6b68f3 100644
--- a/ci/gitlab/build-templates.yml
+++ b/ci/gitlab/build-templates.yml
@@ -293,56 +293,3 @@
 
     # upstream+forks: that's all folks
     - when: never
-
-
-.cirrus_build_job:
-  stage: builds
-  image: registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:latest
-  interruptible: true
-  needs: []
-  script:
-    - set -o allexport
-    - source ci/cirrus/$NAME.vars
-    - set +o allexport
-    - cirrus-vars <ci/cirrus/build.yml >ci/cirrus/$NAME.yml
-    - cat ci/cirrus/$NAME.yml
-    - cirrus-run -v --show-build-log always ci/cirrus/$NAME.yml
-  rules:
-    # upstream+forks: Can't run unless Cirrus is configured
-    - if: '$CIRRUS_GITHUB_REPO == null || $CIRRUS_API_TOKEN == null'
-      when: never
-
-    # upstream: pushes to branches
-    - if: '$CI_PROJECT_NAMESPACE == $RUN_UPSTREAM_NAMESPACE && 
$CI_PIPELINE_SOURCE == "push" && $JOB_OPTIONAL'
-      when: manual
-      allow_failure: true
-    - if: '$CI_PROJECT_NAMESPACE == $RUN_UPSTREAM_NAMESPACE && 
$CI_PIPELINE_SOURCE == "push"'
-      when: on_success
-
-    # forks: pushes to branches with pipeline requested (including pipeline in 
upstream environment)
-    - if: '$CI_PROJECT_NAMESPACE != $RUN_UPSTREAM_NAMESPACE && 
$CI_PIPELINE_SOURCE == "push" && $RUN_PIPELINE == "0"'
-      when: manual
-      allow_failure: true
-    - if: '$CI_PROJECT_NAMESPACE != $RUN_UPSTREAM_NAMESPACE && 
$CI_PIPELINE_SOURCE == "push" && $RUN_PIPELINE == "1" && $JOB_OPTIONAL'
-      when: manual
-      allow_failure: true
-    - if: '$CI_PROJECT_NAMESPACE != $RUN_UPSTREAM_NAMESPACE && 
$CI_PIPELINE_SOURCE == "push" && $RUN_PIPELINE == "1"'
-      when: on_success
-    - if: '$CI_PROJECT_NAMESPACE != $RUN_UPSTREAM_NAMESPACE && 
$CI_PIPELINE_SOURCE == "push" && $RUN_PIPELINE_UPSTREAM_ENV == "0"'
-      when: manual
-      allow_failure: true
-    - if: '$CI_PROJECT_NAMESPACE != $RUN_UPSTREAM_NAMESPACE && 
$CI_PIPELINE_SOURCE == "push" && $RUN_PIPELINE_UPSTREAM_ENV == "1" && 
$JOB_OPTIONAL'
-      when: manual
-      allow_failure: true
-    - if: '$CI_PROJECT_NAMESPACE != $RUN_UPSTREAM_NAMESPACE && 
$CI_PIPELINE_SOURCE == "push" && $RUN_PIPELINE_UPSTREAM_ENV == "1"'
-      when: on_success
-
-    # upstream+forks: Run pipelines on MR, web, api & scheduled
-    - if: '$CI_PIPELINE_SOURCE =~ /(web|api|schedule|merge_request_event)/ && 
$JOB_OPTIONAL'
-      when: manual
-      allow_failure: true
-    - if: '$CI_PIPELINE_SOURCE =~ /(web|api|schedule|merge_request_event)/'
-      when: on_success
-
-    # upstream+forks: that's all folks
-    - when: never
diff --git a/ci/gitlab/builds.yml b/ci/gitlab/builds.yml
index 69c1047243..d947170ebe 100644
--- a/ci/gitlab/builds.yml
+++ b/ci/gitlab/builds.yml
@@ -492,52 +492,3 @@ mingw64-fedora-rawhide:
     JOB_OPTIONAL: 1
     NAME: fedora-rawhide
     TARGET_BASE_IMAGE: registry.fedoraproject.org/fedora:rawhide
-
-
-# Native cirrus build jobs
-
-x86_64-freebsd-14:
-  extends: .cirrus_build_job
-  needs: []
-  allow_failure:
-    exit_codes: 3
-  variables:
-    CIRRUS_VM_IMAGE_NAME: freebsd-14-3
-    CIRRUS_VM_IMAGE_SELECTOR: image_family
-    CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
-    INSTALL_COMMAND: pkg install -y
-    NAME: freebsd-14
-    UPDATE_COMMAND: pkg update
-    UPGRADE_COMMAND: pkg upgrade -y
-
-
-x86_64-freebsd-15:
-  extends: .cirrus_build_job
-  needs: []
-  allow_failure:
-    exit_codes: 3
-  variables:
-    CIRRUS_VM_IMAGE_NAME: freebsd-15-0-amd64-ufs
-    CIRRUS_VM_IMAGE_SELECTOR: image_family
-    CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
-    INSTALL_COMMAND: pkg install -y
-    NAME: freebsd-15
-    UPDATE_COMMAND: pkg update
-    UPGRADE_COMMAND: pkg upgrade -y
-
-
-aarch64-macos-14:
-  extends: .cirrus_build_job
-  needs: []
-  allow_failure:
-    exit_codes: 3
-  variables:
-    CIRRUS_VM_IMAGE_NAME: ghcr.io/cirruslabs/macos-runner:sonoma
-    CIRRUS_VM_IMAGE_SELECTOR: image
-    CIRRUS_VM_INSTANCE_TYPE: macos_instance
-    INSTALL_COMMAND: brew install
-    NAME: macos-14
-    PATH_EXTRA: 
/usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin:/usr/local/opt/libpcap/bin:/usr/local/opt/libxslt/bin
-    PKG_CONFIG_PATH: 
/usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/libpcap/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig
-    UPDATE_COMMAND: brew update
-    UPGRADE_COMMAND: brew upgrade
diff --git a/ci/manifest.yml b/ci/manifest.yml
index 2a48735a7d..31de78660d 100644
--- a/ci/manifest.yml
+++ b/ci/manifest.yml
@@ -5,6 +5,9 @@ gitlab:
   namespace: libvirt
   project: libvirt
 
+cirrus:
+  enabled: false
+
 targets:
   almalinux-9:
     jobs:
@@ -161,10 +164,6 @@ targets:
         allow-failure: true
         builds: false
 
-  freebsd-14: x86_64
-
-  freebsd-15: x86_64
-
   opensuse-leap-15:
     jobs:
       - arch: x86_64
@@ -180,13 +179,6 @@ targets:
         variables:
           RPM: skip
 
-  macos-14:
-    jobs:
-      - arch: aarch64
-        variables:
-          PATH_EXTRA: 
/usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin:/usr/local/opt/libpcap/bin:/usr/local/opt/libxslt/bin
-          PKG_CONFIG_PATH: 
/usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/libpcap/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig
-
   ubuntu-2404:
     jobs:
       - arch: x86_64
-- 
2.53.0

Reply via email to