Skip to content

Merge pull request #6 from reliforp/claude/test-oom-dump #137

Merge pull request #6 from reliforp/claude/test-oom-dump

Merge pull request #6 from reliforp/claude/test-oom-dump #137

Workflow file for this run

name: build
on:
push:
pull_request:
workflow_dispatch:
concurrency:
group: build-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: PHP ${{ matrix.php }} ${{ matrix.ts == 'zts' && 'ZTS' || 'NTS' }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# reli supports target PHP 7.0 .. 8.5; cover the same range in
# both thread-safety builds.
php:
- '7.0'
- '7.1'
- '7.2'
- '7.3'
- '7.4'
- '8.0'
- '8.1'
- '8.2'
- '8.3'
- '8.4'
- '8.5'
ts:
- 'cli' # NTS
- 'zts' # ZTS
steps:
# Checkout runs on the host runner (modern glibc/node), then the
# build happens inside the target container with the tree mounted.
# This sidesteps node20-based actions failing on the old glibc of
# the 7.0-7.4 images.
- uses: actions/checkout@v5
- name: Build and test (php:${{ matrix.php }}-${{ matrix.ts }})
run: |
docker run --rm \
-e CI=1 \
-v "$PWD":/ext -w /ext \
"php:${{ matrix.php }}-${{ matrix.ts }}" \
sh ci/build-and-test.sh
build-arm64:
name: PHP ${{ matrix.php }} ${{ matrix.ts == 'zts' && 'ZTS' || 'NTS' }} (arm64)
runs-on: ubuntu-24.04-arm
strategy:
fail-fast: false
matrix:
# Representative coverage on arm64 (mirrors reli-prof's arm64 matrix):
# an old 7.x, a mid 8.x, and current 8.x in both thread-safety builds.
# The full version sweep runs on x86-64 above.
include:
- php: '7.4'
ts: 'cli'
- php: '8.2'
ts: 'cli'
- php: '8.4'
ts: 'cli'
- php: '8.4'
ts: 'zts'
steps:
- uses: actions/checkout@v5
# The official php:* images are multi-arch, so on an arm64 runner this
# pulls and builds the native aarch64 variant.
- name: Build and test (php:${{ matrix.php }}-${{ matrix.ts }}, arm64)
run: |
docker run --rm \
-e CI=1 \
-v "$PWD":/ext -w /ext \
"php:${{ matrix.php }}-${{ matrix.ts }}" \
sh ci/build-and-test.sh
reli-integration:
name: reli reads an ext-rdump dump (PHP 8.4)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
path: ext
- uses: actions/checkout@v5
with:
repository: reliforp/reli-prof
path: reli
- name: Dump with ext-rdump, then read it with reli
run: |
docker run --rm \
-e CI=1 \
-v "$PWD/ext":/ext -v "$PWD/reli":/reli -w /ext \
php:8.4-cli \
sh ci/reli-integration.sh
leak-check:
name: Leak check PHP 8.4 ${{ matrix.ts == 'zts' && 'ZTS' || 'NTS' }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ts:
- 'cli' # NTS
- 'zts' # ZTS
steps:
- uses: actions/checkout@v5
- name: Valgrind leak check (php:8.4-${{ matrix.ts }})
run: |
docker run --rm \
-v "$PWD":/ext -w /ext \
"php:8.4-${{ matrix.ts }}" \
sh ci/leak-check.sh