task:
- name: macOS - Ventura - Meson
+ name: macOS - Sonoma - Meson
env:
CPUS: 4 # always get that much for cirrusci macOS instances
# work OK. See
# https://postgr.es/m/20220927040208.l3shfcidovpzqxfh%40awork3.anarazel.de
TEST_JOBS: 8
- IMAGE: ghcr.io/cirruslabs/macos-ventura-base:latest
+ IMAGE: ghcr.io/cirruslabs/macos-runner:sonoma
CIRRUS_WORKING_DIR: ${HOME}/pgsql/
CCACHE_DIR: ${HOME}/ccache
# updates macports every time.
macports_cache:
folder: ${MACPORTS_CACHE}
+ fingerprint_script: |
+ # Include the OS major version in the cache key. If the OS image changes
+ # to a different major version, we need to reinstall.
+ sw_vers -productVersion | sed 's/\..*//'
+ reupload_on_changes: true
setup_additional_packages_script: |
sh src/tools/ci/ci_macports_packages.sh \
ccache \
packages="$@"
-macports_url="https://github.com/macports/macports-base/releases/download/v2.8.1/MacPorts-2.8.1-13-Ventura.pkg"
+macos_major_version="` sw_vers -productVersion | sed 's/\..*//' `"
+echo "macOS major version: $macos_major_version"
+
+# Scan the avialable MacPorts releases to find the latest one for the
+# running macOS release. By default we assume the first match is the most
+# recent MacPorts version but that can be changed below if it turns out to be
+# problematic or a particular MacPorts release turns out to be broken.
+macports_release_list_url="https://api.github.com/repos/macports/macports-base/releases"
+macports_version_pattern=".*"
+#macports_version_pattern="2\.9\.3"
+macports_url="$( curl -s $macports_release_list_url | grep "\"https://github.com/macports/macports-base/releases/download/v$macports_version_pattern/MacPorts-$macports_version_pattern-$macos_major_version-[A-Za-z]*\.pkg\"" | sed 's/.*: "//;s/".*//' | head -1 )"
+echo "MacPorts package URL: $macports_url"
+
cache_dmg="macports.hfs.dmg"
if [ "$CIRRUS_CI" != "true" ]; then