]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
ci: Change macOS builds from Intel to ARM.
authorThomas Munro <tmunro@postgresql.org>
Sat, 31 Dec 2022 21:43:23 +0000 (10:43 +1300)
committerThomas Munro <tmunro@postgresql.org>
Sat, 31 Dec 2022 21:43:23 +0000 (10:43 +1300)
Cirrus is about to shut down its macOS-on-Intel support, so it's time to
move our CI testing over to ARM instances.  The Homebrew package manager
changed its default installation prefix for the new architecture, so a
couple of tests need tweaks to find binaries.

Back-patch to 15, where in-tree CI began.

Author: Justin Pryzby <pryzby@telsasoft.com>
Discussion: https://postgr.es/m/20221122225744.GF11463%40telsasoft.com

.cirrus.yml
src/test/kerberos/t/001_auth.pl
src/test/ldap/t/001_auth.pl

index 638850a0fec9cb218336d2162d5a347f3dd8d769..63b2426741da06dbeb6459d0bdd618de420ed46e 100644 (file)
@@ -224,7 +224,7 @@ task:
   name: macOS - Monterey
 
   env:
-    CPUS: 12 # always get that much for cirrusci macOS instances
+    CPUS: 4 # always get that much for cirrusci macOS instances
     BUILD_JOBS: $CPUS
     # Test performance regresses noticably when using all cores. 8 seems to
     # work OK. See
@@ -238,8 +238,8 @@ task:
 
   only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*(macos|darwin|osx).*'
 
-  osx_instance:
-    image: monterey-base
+  macos_instance:
+    image: ghcr.io/cirruslabs/macos-monterey-base:latest
 
   sysinfo_script: |
     id
@@ -284,7 +284,7 @@ task:
   ccache_cache:
     folder: $CCACHE_DIR
   configure_script: |
-    brewpath="/usr/local"
+    brewpath="/opt/homebrew"
     INCLUDES="${brewpath}/include:${INCLUDES}"
     LIBS="${brewpath}/lib:${LIBS}"
 
index 62e0542639309e2a1ecb5091627450a3750469de..b7418cbb6e5bd442bed1ef36b7ecf09ccfb7a598 100644 (file)
@@ -28,8 +28,15 @@ if ($ENV{with_gssapi} ne 'yes')
 
 my ($krb5_bin_dir, $krb5_sbin_dir);
 
-if ($^O eq 'darwin')
+if ($^O eq 'darwin' && -d "/opt/homebrew" )
 {
+       # typical paths for Homebrew on ARM
+       $krb5_bin_dir  = '/opt/homebrew/opt/krb5/bin';
+       $krb5_sbin_dir = '/opt/homebrew/opt/krb5/sbin';
+}
+elsif ($^O eq 'darwin')
+{
+       # typical paths for Homebrew on Intel
        $krb5_bin_dir  = '/usr/local/opt/krb5/bin';
        $krb5_sbin_dir = '/usr/local/opt/krb5/sbin';
 }
index 86dff8bd1f3b5ac27665d6f4f74ca37d1cae5519..3f7bea9aa6c55800482218d33844d05080dc5b6c 100644 (file)
@@ -16,9 +16,15 @@ if ($ENV{with_ldap} ne 'yes')
 {
        plan skip_all => 'LDAP not supported by this build';
 }
+elsif ($^O eq 'darwin' && -d '/opt/homebrew/opt/openldap')
+{
+       # typical paths for Homebrew on ARM
+       $slapd           = '/opt/homebrew/opt/openldap/libexec/slapd';
+       $ldap_schema_dir = '/opt/homebrew/etc/openldap/schema';
+}
 elsif ($^O eq 'darwin' && -d '/usr/local/opt/openldap')
 {
-       # typical paths for Homebrew
+       # typical paths for Homebrew on Intel
        $slapd           = '/usr/local/opt/openldap/libexec/slapd';
        $ldap_schema_dir = '/usr/local/etc/openldap/schema';
 }