Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit f8c1bb2

Browse files
committed
ci: Upgrade macOS version from 13 to 14.
1. Previously we were using ghcr.io/cirruslabs/macos-XXX-base:latest images, but Cirrus has started ignoring that and using a particular image, currently ghcr.io/cirruslabs/macos-runner:sonoma, for github accounts using free CI resources (as opposed to dedicated runner machines, as cfbot uses). Let's just ask for that image anyway, to stay in sync. 2. Instead of hard-coding a MacPorts installation URL, deduce it from the running macOS version and the available releases. This removes the need to keep the ci_macports_packages.sh in sync with .cirrus.task.yml, and to advance the MacPorts version from time to time. 3. Change the cache key we use to cache the whole macports installation across builds to include the OS major version, to trigger a fresh installation when appropriate. Back-patch to 15 where CI began. Reviewed-by: Andres Freund <andres@anarazel.de> Discussion: https://postgr.es/m/CA%2BhUKGLqJdv6RcwyZ_0H7khxtLTNJyuK%2BvDFzv3uwYbn8hKH6A%40mail.gmail.com
1 parent 73de50e commit f8c1bb2

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

.cirrus.tasks.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,7 @@ task:
411411

412412

413413
task:
414-
name: macOS - Ventura - Meson
414+
name: macOS - Sonoma - Meson
415415

416416
env:
417417
CPUS: 4 # always get that much for cirrusci macOS instances
@@ -420,7 +420,7 @@ task:
420420
# work OK. See
421421
# https://postgr.es/m/20220927040208.l3shfcidovpzqxfh%40awork3.anarazel.de
422422
TEST_JOBS: 8
423-
IMAGE: ghcr.io/cirruslabs/macos-ventura-base:latest
423+
IMAGE: ghcr.io/cirruslabs/macos-runner:sonoma
424424

425425
CIRRUS_WORKING_DIR: ${HOME}/pgsql/
426426
CCACHE_DIR: ${HOME}/ccache
@@ -460,6 +460,11 @@ task:
460460
# updates macports every time.
461461
macports_cache:
462462
folder: ${MACPORTS_CACHE}
463+
fingerprint_script: |
464+
# Include the OS major version in the cache key. If the OS image changes
465+
# to a different major version, we need to reinstall.
466+
sw_vers -productVersion | sed 's/\..*//'
467+
reupload_on_changes: true
463468
setup_additional_packages_script: |
464469
sh src/tools/ci/ci_macports_packages.sh \
465470
ccache \

src/tools/ci/ci_macports_packages.sh

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,19 @@ set -e
1313

1414
packages="$@"
1515

16-
macports_url="https://github.com/macports/macports-base/releases/download/v2.8.1/MacPorts-2.8.1-13-Ventura.pkg"
16+
macos_major_version="` sw_vers -productVersion | sed 's/\..*//' `"
17+
echo "macOS major version: $macos_major_version"
18+
19+
# Scan the avialable MacPorts releases to find the latest one for the
20+
# running macOS release. By default we assume the first match is the most
21+
# recent MacPorts version but that can be changed below if it turns out to be
22+
# problematic or a particular MacPorts release turns out to be broken.
23+
macports_release_list_url="https://api.github.com/repos/macports/macports-base/releases"
24+
macports_version_pattern=".*"
25+
#macports_version_pattern="2\.9\.3"
26+
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 )"
27+
echo "MacPorts package URL: $macports_url"
28+
1729
cache_dmg="macports.hfs.dmg"
1830

1931
if [ "$CIRRUS_CI" != "true" ]; then

0 commit comments

Comments
 (0)