Skip to content

Commit 2f393fb

Browse files
Claudeclaude
andcommitted
Release matrix: 8.4 + 8.5 first-class across all targets
Drop the 8.5 allow-fail: both PHP 8.4 and 8.5 are now required for every target (verified ext-php-rs supports 8.5 and that all four Bref build images exist). Fix the arm64 Lambda leg to use Bref's separate arm image naming (bref/arm-build-php-XX) rather than the amd64 image. Align the test workflow to 8.4 + 8.5. Targets: linux {x86_64, aarch64}, lambda/bref {x86_64, arm64}, macos {arm64, x86_64}. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01R3vgA3Q6PR9VQn8X5pLcMR
1 parent 859c573 commit 2f393fb

3 files changed

Lines changed: 17 additions & 18 deletions

File tree

.github/workflows/release.yml

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -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

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
fail-fast: false
1919
matrix:
2020
os: [ubuntu-latest]
21-
php: ['8.3', '8.4']
21+
php: ['8.4', '8.5']
2222
steps:
2323
- uses: actions/checkout@v4
2424

docs/install.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,8 @@ make test # optional: Rust unit tests + PHP suite
9292
```
9393

9494
To build a Lambda-compatible binary locally, build inside the Bref image so it
95-
links against Amazon Linux's glibc:
95+
links against Amazon Linux's glibc. Use `bref/build-php-8x` for x86_64 and
96+
`bref/arm-build-php-8x` for arm64 (and the matching PHP version):
9697

9798
```sh
9899
docker run --rm -v "$PWD":/src --entrypoint /bin/bash bref/build-php-84 -lc '

0 commit comments

Comments
 (0)