@@ -26,15 +26,14 @@ jobs:
2626 linux :
2727 name : linux ${{ matrix.arch }} · php ${{ matrix.php }}
2828 runs-on : ${{ matrix.runner }}
29- continue-on-error : ${{ matrix.experimental || false }}
3029 strategy :
3130 fail-fast : false
3231 matrix :
3332 include :
3433 - { php: '8.4', arch: x86_64, runner: ubuntu-22.04 }
3534 - { php: '8.4', arch: aarch64, runner: ubuntu-22.04-arm }
36- - { php: '8.5', arch: x86_64, runner: ubuntu-22.04, experimental: true }
37- - { php: '8.5', arch: aarch64, runner: ubuntu-22.04-arm, experimental: true }
35+ - { php: '8.5', arch: x86_64, runner: ubuntu-22.04 }
36+ - { php: '8.5', arch: aarch64, runner: ubuntu-22.04-arm }
3837 steps :
3938 - uses : actions/checkout@v4
4039 - uses : shivammathur/setup-php@v2
@@ -63,25 +62,26 @@ jobs:
6362 lambda-bref :
6463 name : lambda/bref ${{ matrix.arch }} · php ${{ matrix.php }}
6564 runs-on : ${{ matrix.runner }}
66- continue-on-error : ${{ matrix.experimental || false }}
6765 strategy :
6866 fail-fast : false
6967 matrix :
68+ # Bref publishes separate per-arch build images: bref/build-php-XX
69+ # (x86_64) and bref/arm-build-php-XX (arm64).
7070 include :
71- - { php: '8.4', short: '84', arch: x86_64, runner: ubuntu-22.04 }
72- - { php: '8.4', short: '84', arch: arm64, runner: ubuntu-22.04-arm }
73- - { php: '8.5', short: '85', arch: x86_64, runner: ubuntu-22.04, experimental: true }
74- - { php: '8.5', short: '85', arch: arm64, runner: ubuntu-22.04-arm, experimental: true }
71+ - { php: '8.4', arch: x86_64, runner: ubuntu-22.04, image: bref/build-php-84 }
72+ - { php: '8.4', arch: arm64, runner: ubuntu-22.04-arm, image: bref/arm-build-php-84 }
73+ - { php: '8.5', arch: x86_64, runner: ubuntu-22.04, image: bref/build-php-85 }
74+ - { php: '8.5', arch: arm64, runner: ubuntu-22.04-arm, image: bref/arm-build-php-85 }
7575 steps :
7676 - uses : actions/checkout@v4
7777
7878 # Build in the Bref build image via `docker run` (rather than a job
79- # `container:`) so checkout/runner tooling stays on the host. The image is
80- # multi-arch, so the arm64 runner produces an arm64 binary natively.
81- - name : Build in Bref image (bref/build-php- ${{ matrix.short }})
79+ # `container:`) so checkout/runner tooling stays on the host. The arm64
80+ # runner pulls the arm64 Bref image and builds an arm64 binary natively.
81+ - name : Build in Bref image (${{ matrix.image }})
8282 run : |
8383 docker run --rm -v "$PWD":/src --entrypoint /bin/bash \
84- "bref/build-php- ${{ matrix.short }}" -lc '
84+ "${{ matrix.image }}" -lc '
8585 set -euo pipefail
8686 dnf install -y clang
8787 curl --proto "=https" --tlsv1.2 -sSf https://sh.rustup.rs \
@@ -119,15 +119,14 @@ jobs:
119119 macos :
120120 name : macos ${{ matrix.arch }} · php ${{ matrix.php }}
121121 runs-on : ${{ matrix.runner }}
122- continue-on-error : ${{ matrix.experimental || false }}
123122 strategy :
124123 fail-fast : false
125124 matrix :
126125 include :
127126 - { php: '8.4', arch: arm64, runner: macos-14 }
128127 - { php: '8.4', arch: x86_64, runner: macos-13 }
129- - { php: '8.5', arch: arm64, runner: macos-14, experimental: true }
130- - { php: '8.5', arch: x86_64, runner: macos-13, experimental: true }
128+ - { php: '8.5', arch: arm64, runner: macos-14 }
129+ - { php: '8.5', arch: x86_64, runner: macos-13 }
131130 steps :
132131 - uses : actions/checkout@v4
133132 - uses : shivammathur/setup-php@v2
@@ -151,7 +150,6 @@ jobs:
151150 release :
152151 name : publish release
153152 needs : [linux, lambda-bref, macos]
154- if : always() # publish whatever built (8.5 legs may be allowed to fail)
155153 runs-on : ubuntu-latest
156154 steps :
157155 - uses : actions/download-artifact@v4
0 commit comments