Skip to content

Commit 1c37f39

Browse files
committed
CI: add an arm64 build+test matrix
The official php:* images are multi-arch, so running the existing ci/build-and-test.sh on an ubuntu-24.04-arm runner builds and tests the native aarch64 extension. Cover a representative set (7.4, 8.2, 8.4 NTS, 8.4 ZTS), mirroring reli-prof's arm64 matrix; the full version sweep stays on x86-64. https://claude.ai/code/session_017skw8BsHkF8wur7Pf4G9W5
1 parent cdf2561 commit 1c37f39

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

.github/workflows/build.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,37 @@ jobs:
4848
"php:${{ matrix.php }}-${{ matrix.ts }}" \
4949
sh ci/build-and-test.sh
5050
51+
build-arm64:
52+
name: PHP ${{ matrix.php }} ${{ matrix.ts == 'zts' && 'ZTS' || 'NTS' }} (arm64)
53+
runs-on: ubuntu-24.04-arm
54+
strategy:
55+
fail-fast: false
56+
matrix:
57+
# Representative coverage on arm64 (mirrors reli-prof's arm64 matrix):
58+
# an old 7.x, a mid 8.x, and current 8.x in both thread-safety builds.
59+
# The full version sweep runs on x86-64 above.
60+
include:
61+
- php: '7.4'
62+
ts: 'cli'
63+
- php: '8.2'
64+
ts: 'cli'
65+
- php: '8.4'
66+
ts: 'cli'
67+
- php: '8.4'
68+
ts: 'zts'
69+
steps:
70+
- uses: actions/checkout@v5
71+
72+
# The official php:* images are multi-arch, so on an arm64 runner this
73+
# pulls and builds the native aarch64 variant.
74+
- name: Build and test (php:${{ matrix.php }}-${{ matrix.ts }}, arm64)
75+
run: |
76+
docker run --rm \
77+
-e CI=1 \
78+
-v "$PWD":/ext -w /ext \
79+
"php:${{ matrix.php }}-${{ matrix.ts }}" \
80+
sh ci/build-and-test.sh
81+
5182
reli-integration:
5283
name: reli reads an ext-rdump dump (PHP 8.4)
5384
runs-on: ubuntu-latest

0 commit comments

Comments
 (0)