From 260acd773415d107216115cf6490686cc110691a Mon Sep 17 00:00:00 2001 From: William Storey Date: Wed, 7 Oct 2026 21:04:51 +0000 Subject: [PATCH] Build the macOS assets on macos-26 setup-php installs PHP from shivammathur/php tap bottles. The tap has bottles only for the macOS versions that Homebrew supports, and macOS 14 is not one of them. On macos-14, setup-php 2.37.2 builds PHP and its dependencies from source. Its inactivity watchdog kills and retries the build until no php binary exists, and the step fails with "Could not setup PHP". See shivammathur/setup-php#1125. macos-26 is the newest pinned arm64 image. Homebrew and GitHub support it for longer than macos-15. The version stays pinned rather than macos-latest so that the build image changes only with a commit. The runner does not set the macOS floor of the assets. The build step pins MACOSX_DEPLOYMENT_TARGET to 11.0, and the gate step fails if the measured minos is higher. The assets support macOS 11 and later. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/release.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 05aff56..5c56214 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -679,10 +679,16 @@ jobs: macos: name: macOS arm64 PHP ${{ matrix.php-version }} ${{ matrix.ts }} needs: [setup] - # macos-14 is the oldest arm64 image GitHub offers. There is no container + # The runner does not set the macOS floor. There is no container # equivalent of the Linux glibc pin on macOS, so the floor is set by the # deployment target the build step exports and asserted in the gate step. - runs-on: macos-14 + # + # The image must be a macOS version that Homebrew supports. The + # shivammathur/php tap has bottles only for those versions, and on any + # other image setup-php builds PHP from source and fails + # (shivammathur/setup-php#1125). The version is pinned rather than + # macos-latest so that the build image changes only with a commit. + runs-on: macos-26 permissions: contents: read strategy: @@ -760,7 +766,7 @@ jobs: TAG: ${{ needs.setup.outputs.tag }} MATRIX_PHP: ${{ matrix.php-version }} MATRIX_TS: ${{ matrix.ts }} - # macos-14 is arm64-only; the script still cross-checks it against + # macos-26 is arm64-only; the script still cross-checks it against # what the runner reports. MATRIX_ARCH: arm64 # PIE calls the macOS libc bsdlibc.