Skip to content

Commit cd223fe

Browse files
committed
ci: add arm64 job
1 parent 8e39e9c commit cd223fe

File tree

1 file changed

+96
-0
lines changed

1 file changed

+96
-0
lines changed

.github/workflows/push.yml

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,102 @@ jobs:
192192
runTestsParameters: >-
193193
-d zend_extension=opcache.so
194194
-d opcache.enable_cli=1
195+
LINUX_ARM64:
196+
if: github.repository == 'php/php-src' || github.event_name == 'pull_request'
197+
services:
198+
mysql:
199+
image: mysql:8.3
200+
ports:
201+
- 3306:3306
202+
env:
203+
MYSQL_DATABASE: test
204+
MYSQL_ROOT_PASSWORD: root
205+
postgres:
206+
image: postgres
207+
ports:
208+
- 5432:5432
209+
env:
210+
POSTGRES_USER: postgres
211+
POSTGRES_PASSWORD: postgres
212+
POSTGRES_DB: test
213+
firebird:
214+
image: jacobalberty/firebird
215+
ports:
216+
- 3050:3050
217+
env:
218+
ISC_PASSWORD: test
219+
FIREBIRD_DATABASE: test.fdb
220+
FIREBIRD_USER: test
221+
FIREBIRD_PASSWORD: test
222+
strategy:
223+
fail-fast: false
224+
matrix:
225+
include:
226+
- debug: false
227+
zts: false
228+
asan: false
229+
- debug: true
230+
zts: true
231+
asan: true
232+
name: "LINUX_X64_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}${{ matrix.asan && '_ASAN' || '' }}"
233+
runs-on: ubuntu-24.04-arm
234+
timeout-minutes: 50
235+
steps:
236+
- name: git checkout
237+
uses: actions/checkout@v4
238+
- name: apt
239+
uses: ./.github/actions/apt-x64
240+
- name: System info
241+
run: |
242+
echo "::group::Show host CPU info"
243+
lscpu
244+
echo "::endgroup::"
245+
echo "::group::Show installed package versions"
246+
dpkg -l
247+
echo "::endgroup::"
248+
- name: Create MSSQL container
249+
if: ${{ !matrix.asan }}
250+
uses: ./.github/actions/setup-mssql
251+
- name: Setup Caddy server
252+
uses: ./.github/actions/setup-caddy
253+
- name: ccache
254+
uses: hendrikmuhs/ccache-action@v1.2
255+
with:
256+
# This duplicates the "job.name" expression above because
257+
# GitHub has no way to query the job name (github.job is the
258+
# job id, not the job name)
259+
key: "LINUX_X64_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}${{ matrix.asan && '_ASAN' || '' }}-${{hashFiles('main/php_version.h')}}"
260+
append-timestamp: false
261+
save: ${{ github.event_name != 'pull_request' }}
262+
- name: ./configure
263+
uses: ./.github/actions/configure-x64
264+
with:
265+
configurationParameters: >-
266+
--${{ matrix.debug && 'enable' || 'disable' }}-debug
267+
--${{ matrix.zts && 'enable' || 'disable' }}-zts
268+
${{ matrix.asan && 'CFLAGS="-fsanitize=undefined,address -fno-sanitize=function -DZEND_TRACK_ARENA_ALLOC" LDFLAGS="-fsanitize=undefined,address -fno-sanitize=function" CC=clang CXX=clang++' || '' }}
269+
skipSlow: ${{ matrix.asan }}
270+
- name: make
271+
run: make -j$(/usr/bin/nproc) >/dev/null
272+
- name: make install
273+
uses: ./.github/actions/install-linux
274+
- name: Setup
275+
if: ${{ !matrix.asan }}
276+
uses: ./.github/actions/setup-x64
277+
- name: Test
278+
if: matrix.asan == false
279+
uses: ./.github/actions/test-linux
280+
- name: Test Tracing JIT
281+
uses: ./.github/actions/test-linux
282+
with:
283+
jitType: tracing
284+
runTestsParameters: >-
285+
-d zend_extension=opcache.so
286+
-d opcache.enable_cli=1
287+
${{ matrix.asan && '--asan -x' || '' }}
288+
- name: Verify generated files are up to date
289+
if: ${{ !matrix.asan }}
290+
uses: ./.github/actions/verify-generated-files
195291
MACOS_DEBUG_NTS:
196292
if: github.repository == 'php/php-src' || github.event_name == 'pull_request'
197293
strategy:

0 commit comments

Comments
 (0)