ci: Change macOS builds from Intel to ARM.

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
This commit is contained in:
Thomas Munro 2023-01-01 10:43:23 +13:00
parent c4f64cfab9
commit dc513bc654
3 changed files with 19 additions and 6 deletions

View 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}"

View 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';
}

View 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';
}