summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.cirrus.tasks.yml9
-rwxr-xr-xsrc/tools/ci/ci_macports_packages.sh14
2 files changed, 20 insertions, 3 deletions
diff --git a/.cirrus.tasks.yml b/.cirrus.tasks.yml
index 99ca74d5133..4d773b9a4f7 100644
--- a/.cirrus.tasks.yml
+++ b/.cirrus.tasks.yml
@@ -413,7 +413,7 @@ task:
task:
- name: macOS - Ventura - Meson
+ name: macOS - Sonoma - Meson
env:
CPUS: 4 # always get that much for cirrusci macOS instances
@@ -422,7 +422,7 @@ task:
# 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
@@ -462,6 +462,11 @@ task:
# 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 \
diff --git a/src/tools/ci/ci_macports_packages.sh b/src/tools/ci/ci_macports_packages.sh
index f87256e0908..03cbe48a5d6 100755
--- a/src/tools/ci/ci_macports_packages.sh
+++ b/src/tools/ci/ci_macports_packages.sh
@@ -13,7 +13,19 @@ set -e
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