Cirrus CI has stoppped offering multiple versions of macOS images.
There is now only 1 single image, but with multiple XCode versions
pre-installed, selectable using the 'xcodes' app:
$ xcodes list | grep Installed
15.2 (15C500b) (Installed)
15.3 (15E204a) (Installed)
15.4 (15F31d) (Installed, Selected)
16.0 (16A242d) (Installed)
$ clang -v
Apple clang version 15.0.0 (clang-1500.3.9.4)
Target: arm64-apple-darwin23.6.0
Thread model: posix
InstalledDir: /Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
$ xcodes select 16.0
xcodes requires superuser privileges to select an Xcode
macOS User Password:
Selected /Applications/Xcode_16.app/Contents/Developer
$ clang -v
Apple clang version 16.0.0 (clang-1600.0.26.3)
Target: arm64-apple-darwin23.6.0
Thread model: posix
InstalledDir: /Applications/Xcode_16.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Any Cirrus CI jobs using an unsupported macOS image name will get
forcably changed at runtime to bot the only permitted image,
currently sonoma. IOW, our attempts to test multiple versions were
not doing anything useful, as evidenced by this message shown in
the Cirrus CI web pages for job tasks:
"Only ghcr.io/cirruslabs/macos-runner:sonoma is allowed.
Automatically upgraded."
Replace (failed) testing of multiple macOS versions, with testing
of multiple XCode versions - 15.4 and 16.0
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
ci/cirrus/build.yml | 2 ++
ci/cirrus/macos-13.vars | 16 ----------------
ci/gitlab/builds.yml | 12 +++++++-----
ci/manifest.yml | 9 +++++----
4 files changed, 14 insertions(+), 25 deletions(-)
delete mode 100644 ci/cirrus/macos-13.vars
diff --git a/ci/cirrus/build.yml b/ci/cirrus/build.yml
index c0ac05f4d9..110d426aad 100644
--- a/ci/cirrus/build.yml
+++ b/ci/cirrus/build.yml
@@ -10,6 +10,7 @@ env:
PKG_CONFIG_PATH: "@PKG_CONFIG_PATH@"
PYTHON: "@PYTHON@"
MAKE: "@MAKE@"
+ XCODE: "@XCODE@"
VIR_TEST_VERBOSE: "1"
VIR_TEST_DEBUG: "1"
@@ -24,6 +25,7 @@ build_task:
- git fetch origin "${CI_MERGE_REQUEST_REF_PATH:-$CI_COMMIT_REF_NAME}"
- git reset --hard "$CI_COMMIT_SHA"
build_script:
+ - if test -n "$XCODE"; then xcodes select "$XCODE"; fi
- 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
diff --git a/ci/cirrus/macos-13.vars b/ci/cirrus/macos-13.vars
deleted file mode 100644
index d23fe3cd47..0000000000
--- a/ci/cirrus/macos-13.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 python3 qemu readline'
-PYPI_PKGS='pytest'
-PYTHON='/opt/homebrew/bin/python3'
diff --git a/ci/gitlab/builds.yml b/ci/gitlab/builds.yml
index 214119b902..f9685e542d 100644
--- a/ci/gitlab/builds.yml
+++ b/ci/gitlab/builds.yml
@@ -624,28 +624,29 @@ x86_64-freebsd-14:
UPGRADE_COMMAND: pkg upgrade -y
-aarch64-macos-13:
+aarch64-macos-14-xcode-15-4:
extends: .cirrus_build_job
needs: []
allow_failure: false
variables:
- CIRRUS_VM_IMAGE_NAME: ghcr.io/cirruslabs/macos-ventura-base:latest
+ 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-13
+ 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
+ XCODE: 15.4
-aarch64-macos-14:
+aarch64-macos-14-xcode-16-0:
extends: .cirrus_build_job
needs: []
allow_failure: false
variables:
- CIRRUS_VM_IMAGE_NAME: ghcr.io/cirruslabs/macos-sonoma-base:latest
+ 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
@@ -654,3 +655,4 @@ aarch64-macos-14:
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
+ XCODE: 16
diff --git a/ci/manifest.yml b/ci/manifest.yml
index 647510ed2f..6f8263f242 100644
--- a/ci/manifest.yml
+++ b/ci/manifest.yml
@@ -203,19 +203,20 @@ targets:
variables:
RPM: skip
- macos-13:
+ macos-14:
jobs:
- arch: aarch64
+ suffix: -xcode-15-4
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
-
- macos-14:
- jobs:
+ XCODE: 15.4
- arch: aarch64
+ suffix: -xcode-16-0
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
+ XCODE: "16.0"
ubuntu-2204:
jobs:
--
2.46.0
On Tue, Oct 15, 2024 at 12:19:24 +0100, Daniel P. Berrangé wrote: > Cirrus CI has stoppped offering multiple versions of macOS images. > > There is now only 1 single image, but with multiple XCode versions > pre-installed, selectable using the 'xcodes' app: > > $ xcodes list | grep Installed > 15.2 (15C500b) (Installed) > 15.3 (15E204a) (Installed) > 15.4 (15F31d) (Installed, Selected) > 16.0 (16A242d) (Installed) > > $ clang -v > Apple clang version 15.0.0 (clang-1500.3.9.4) > Target: arm64-apple-darwin23.6.0 > Thread model: posix > InstalledDir: /Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin > > $ xcodes select 16.0 > xcodes requires superuser privileges to select an Xcode > macOS User Password: > Selected /Applications/Xcode_16.app/Contents/Developer > > $ clang -v > Apple clang version 16.0.0 (clang-1600.0.26.3) > Target: arm64-apple-darwin23.6.0 > Thread model: posix > InstalledDir: /Applications/Xcode_16.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin > > Any Cirrus CI jobs using an unsupported macOS image name will get > forcably changed at runtime to bot the only permitted image, > currently sonoma. IOW, our attempts to test multiple versions were > not doing anything useful, as evidenced by this message shown in > the Cirrus CI web pages for job tasks: > > "Only ghcr.io/cirruslabs/macos-runner:sonoma is allowed. > Automatically upgraded." > > Replace (failed) testing of multiple macOS versions, with testing > of multiple XCode versions - 15.4 and 16.0 So are these so much different? I'm asking because I'm a bit annoyed of the CI minutes always running out towards the end of the month.
On Tue, Oct 15, 2024 at 01:58:00PM +0200, Peter Krempa wrote: > On Tue, Oct 15, 2024 at 12:19:24 +0100, Daniel P. Berrangé wrote: > > Cirrus CI has stoppped offering multiple versions of macOS images. > > > > There is now only 1 single image, but with multiple XCode versions > > pre-installed, selectable using the 'xcodes' app: > > > > $ xcodes list | grep Installed > > 15.2 (15C500b) (Installed) > > 15.3 (15E204a) (Installed) > > 15.4 (15F31d) (Installed, Selected) > > 16.0 (16A242d) (Installed) > > > > $ clang -v > > Apple clang version 15.0.0 (clang-1500.3.9.4) > > Target: arm64-apple-darwin23.6.0 > > Thread model: posix > > InstalledDir: /Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin > > > > $ xcodes select 16.0 > > xcodes requires superuser privileges to select an Xcode > > macOS User Password: > > Selected /Applications/Xcode_16.app/Contents/Developer > > > > $ clang -v > > Apple clang version 16.0.0 (clang-1600.0.26.3) > > Target: arm64-apple-darwin23.6.0 > > Thread model: posix > > InstalledDir: /Applications/Xcode_16.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin > > > > Any Cirrus CI jobs using an unsupported macOS image name will get > > forcably changed at runtime to bot the only permitted image, > > currently sonoma. IOW, our attempts to test multiple versions were > > not doing anything useful, as evidenced by this message shown in > > the Cirrus CI web pages for job tasks: > > > > "Only ghcr.io/cirruslabs/macos-runner:sonoma is allowed. > > Automatically upgraded." > > > > Replace (failed) testing of multiple macOS versions, with testing > > of multiple XCode versions - 15.4 and 16.0 > > So are these so much different? I'm asking because I'm a bit annoyed of > the CI minutes always running out towards the end of the month. Basically corresponds to different clang versions. If we're reliably running out of CI minutes, then dropping down to just 1 job is our only way out which doesn't involve paying $$$ for more CI time. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
On Tue, Oct 15, 2024 at 13:09:57 +0100, Daniel P. Berrangé wrote: > On Tue, Oct 15, 2024 at 01:58:00PM +0200, Peter Krempa wrote: > > On Tue, Oct 15, 2024 at 12:19:24 +0100, Daniel P. Berrangé wrote: [...] > > > > > > "Only ghcr.io/cirruslabs/macos-runner:sonoma is allowed. > > > Automatically upgraded." > > > > > > Replace (failed) testing of multiple macOS versions, with testing > > > of multiple XCode versions - 15.4 and 16.0 > > > > So are these so much different? I'm asking because I'm a bit annoyed of > > the CI minutes always running out towards the end of the month. > > Basically corresponds to different clang versions. > > If we're reliably running out of CI minutes, then dropping down to > just 1 job is our only way out which doesn't involve paying $$$ for > more CI time. I've went through the pipeline logs and we've run out of CI minutes on cirrus on following dates: 2024/09/23 2024/08/27 2024/07/30 2024/06/27 2024/05/28 It was okay in April and I didn't check earlier, but most likely this was the start of it, because in May I've also pushed patch decoupling the 'pages' job from the rest of the CI as our web didn't update due to CI minutes being out on Cirrus. It resets at the beginning of the month, so we're marginally over every month, so shedding one job might help.
On Tue, Oct 15, 2024 at 04:47:59PM +0200, Peter Krempa wrote: > On Tue, Oct 15, 2024 at 13:09:57 +0100, Daniel P. Berrangé wrote: > > On Tue, Oct 15, 2024 at 01:58:00PM +0200, Peter Krempa wrote: > > > On Tue, Oct 15, 2024 at 12:19:24 +0100, Daniel P. Berrangé wrote: > > [...] > > > > > > > > > "Only ghcr.io/cirruslabs/macos-runner:sonoma is allowed. > > > > Automatically upgraded." > > > > > > > > Replace (failed) testing of multiple macOS versions, with testing > > > > of multiple XCode versions - 15.4 and 16.0 > > > > > > So are these so much different? I'm asking because I'm a bit annoyed of > > > the CI minutes always running out towards the end of the month. > > > > Basically corresponds to different clang versions. > > > > If we're reliably running out of CI minutes, then dropping down to > > just 1 job is our only way out which doesn't involve paying $$$ for > > more CI time. > > I've went through the pipeline logs and we've run out of CI minutes on > cirrus on following dates: > > 2024/09/23 > 2024/08/27 > 2024/07/30 > 2024/06/27 > 2024/05/28 > > It was okay in April and I didn't check earlier, but most likely this > was the start of it, because in May I've also pushed patch decoupling > the 'pages' job from the rest of the CI as our web didn't update due to > CI minutes being out on Cirrus. > > It resets at the beginning of the month, so we're marginally over every > month, so shedding one job might help. The macOS jobs are massively more expensive on credits than FreeBSD jobs too, so definitely the most benefit is from shedding a macOS job. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
On Tue, Oct 15, 2024 at 12:19:24PM +0100, Daniel P. Berrangé wrote: > Cirrus CI has stoppped offering multiple versions of macOS images. > > There is now only 1 single image, but with multiple XCode versions > pre-installed, selectable using the 'xcodes' app: > > $ xcodes list | grep Installed > 15.2 (15C500b) (Installed) > 15.3 (15E204a) (Installed) > 15.4 (15F31d) (Installed, Selected) > 16.0 (16A242d) (Installed) > > $ clang -v > Apple clang version 15.0.0 (clang-1500.3.9.4) > Target: arm64-apple-darwin23.6.0 > Thread model: posix > InstalledDir: /Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin > > $ xcodes select 16.0 > xcodes requires superuser privileges to select an Xcode > macOS User Password: > Selected /Applications/Xcode_16.app/Contents/Developer > > $ clang -v > Apple clang version 16.0.0 (clang-1600.0.26.3) > Target: arm64-apple-darwin23.6.0 > Thread model: posix > InstalledDir: /Applications/Xcode_16.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin > > Any Cirrus CI jobs using an unsupported macOS image name will get > forcably changed at runtime to bot the only permitted image, > currently sonoma. IOW, our attempts to test multiple versions were > not doing anything useful, as evidenced by this message shown in > the Cirrus CI web pages for job tasks: > > "Only ghcr.io/cirruslabs/macos-runner:sonoma is allowed. > Automatically upgraded." > > Replace (failed) testing of multiple macOS versions, with testing > of multiple XCode versions - 15.4 and 16.0 > > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> > --- > ci/cirrus/build.yml | 2 ++ > ci/cirrus/macos-13.vars | 16 ---------------- > ci/gitlab/builds.yml | 12 +++++++----- > ci/manifest.yml | 9 +++++---- > 4 files changed, 14 insertions(+), 25 deletions(-) > delete mode 100644 ci/cirrus/macos-13.vars NB, this patch depends on https://gitlab.com/libvirt/libvirt-ci/-/merge_requests/508 which changes the cirrus CI image name for macOS 14. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
© 2016 - 2026 Red Hat, Inc.