Hi, Problem #1: we're still using Ventura, but Cirrus has started doing this:
Only ghcr.io/cirruslabs/macos-runner:sonoma is allowed. Automatically upgraded. It doesn't do it to cfbot, which runs macOS stuff on PGDG-hosted Mac Minis, but it does it to regular users who use free compute minutes tagged "instance:OSXCommunityInstance". This causes them to fail, because: [11:17:42.711] Error: Current platform "darwin 23" does not match expected platform "darwin 22" Sure enough, the sysinfo task shows "... Darwin Kernel Version 23.5.0...", but for cfbot it's still 22.y.z. So probably it's time to change to macOS 14 AKA sonoma AKA darwin 23. Problem #2: Once you do that with a simple s/ventura/sonoma/, it still "upgrades" to macos-runner:sonoma, which is not the same as macos-sonoma-base:latest. It has more versions of xcode installed? Not sure what else will break with that because I haven't successfully run it yet due to the next problem, but blind patch attached. Problem #3: If you have a macports installation cached (eg for CI in your github account), then the pre-existing macports installation will be for the wrong darwin version (error shown above). So I think we need to teach src/tools/ci/ci_macports_packages.sh to detect that condition and do a clean install. I can look into that, but does anyone already know how to do it? I know how to find out which darwin version is running: uname -r | sed 's/\..*//'. What I don't know is how to find the darwin version for a macports installation. I have found a terrible way to deduce it: sqlite3 /opt/local/var/macports/registry/registry.db "select max(os_major) from ports where os_major != 'any'" But that's stupid. There must be a way to ask it what version it was installed for ... I think it's the variable macports::os_major[2] (which is written in TCL, a language I can't follow too well), but I can't figure out where it's reading it from.... I hope there is a text file under /opt/local or at worst a SQLite database, or a way to ask the port command to spit that number out or ask it if it thinks migration is necessary... [1] https://github.com/cirruslabs/macos-image-templates/pkgs/container/macos-ventura-xcode [2] https://github.com/macports/macports-base/blob/bf27e0c98c7443877e081d5f6b6
From f40f7020e1316aa3fb4142af3dcf174eb51f4f02 Mon Sep 17 00:00:00 2001 From: Thomas Munro <thomas.mu...@gmail.com> Date: Wed, 26 Jun 2024 10:43:50 +1200 Subject: [PATCH] ci: Upgrade macOS version from 13 to 14. --- .cirrus.tasks.yml | 6 ++++-- src/tools/ci/ci_macports_packages.sh | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.cirrus.tasks.yml b/.cirrus.tasks.yml index 33646faeadf..a1e133b5a2f 100644 --- a/.cirrus.tasks.yml +++ b/.cirrus.tasks.yml @@ -411,7 +411,7 @@ task: task: - name: macOS - Ventura - Meson + name: macOS - Sonoma - Meson env: CPUS: 4 # always get that much for cirrusci macOS instances @@ -420,7 +420,9 @@ task: # work OK. See # https://postgr.es/m/20220927040208.l3shfcidovpzqxfh%40awork3.anarazel.de TEST_JOBS: 8 - IMAGE: ghcr.io/cirruslabs/macos-ventura-base:latest + # If changing the macOS release, you probably also need to change + # macports_url in src/tools/ci/ci_macports_packages.sh + IMAGE: ghcr.io/cirruslabs/macos-runner:sonoma CIRRUS_WORKING_DIR: ${HOME}/pgsql/ CCACHE_DIR: ${HOME}/ccache diff --git a/src/tools/ci/ci_macports_packages.sh b/src/tools/ci/ci_macports_packages.sh index f87256e0908..db811a28c8e 100755 --- a/src/tools/ci/ci_macports_packages.sh +++ b/src/tools/ci/ci_macports_packages.sh @@ -13,7 +13,7 @@ set -e packages="$@" -macports_url="https://github.com/macports/macports-base/releases/download/v2.8.1/MacPorts-2.8.1-13-Ventura.pkg" +macports_url="https://github.com/macports/macports-base/releases/download/v2.9.3/MacPorts-2.9.3-14-Sonoma.pkg" cache_dmg="macports.hfs.dmg" if [ "$CIRRUS_CI" != "true" ]; then -- 2.45.2