@@ -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/[email protected] 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