1717 run_alpine :
1818 required : true
1919 type : boolean
20+ run_linux_ppc64 :
21+ required : true
22+ type : boolean
2023 run_macos_arm64 :
2124 required : true
2225 type : boolean
2629 windows_version :
2730 required : true
2831 type : string
32+ skip_symfony :
33+ required : true
34+ type : boolean
35+ skip_wordpress :
36+ required : true
37+ type : boolean
2938permissions :
3039 contents : read
3140jobs :
41+ LINUX_PPC64 :
42+ if : inputs.run_linux_ppc64
43+ name : LINUX_PPC64_ASAN_UBSAN_DEBUG_ZTS
44+ # This runs on a self-hosted runner; see https://wiki.php.net/systems/ci
45+ runs-on : [self-hosted, gentoo, ppc64]
46+ steps :
47+ - name : git checkout
48+ uses : actions/checkout@v4
49+ with :
50+ ref : ${{ inputs.branch }}
51+ - name : System info
52+ run : |
53+ echo "::group::Show host CPU info"
54+ lscpu
55+ echo "::endgroup::"
56+ echo "::group::Show installed packages"
57+ cat /var/lib/portage/world
58+ echo "::endgroup::"
59+ - name : ./configure
60+ uses : ./.github/actions/configure-gentoo
61+ with :
62+ configurationParameters : >-
63+ CFLAGS="-fsanitize=undefined,address -fno-sanitize=function -DZEND_TRACK_ARENA_ALLOC"
64+ LDFLAGS="-fsanitize=undefined,address -fno-sanitize=function"
65+ CC=clang-17
66+ CXX=clang++-17
67+ --enable-debug
68+ --enable-zts
69+ skipSlow : false # FIXME: This should likely include slow extensions
70+ - name : make
71+ run : make -j$(/usr/bin/nproc) >/dev/null
72+ # Skip an install action for now
73+ - name : Tests
74+ uses : ./.github/actions/test-gentoo
75+ # There is no PPC JIT, so rip this out
76+ with :
77+ runTestsParameters : >-
78+ --asan -x
3279 ALPINE :
3380 if : inputs.run_alpine
3481 name : ALPINE_X64_ASAN_UBSAN_DEBUG_ZTS
@@ -227,6 +274,8 @@ jobs:
227274 runs-on : ubuntu-latest
228275 container :
229276 image : ubuntu:${{ inputs.ubuntu_version }}
277+ env :
278+ PDO_FIREBIRD_TEST_DSN : firebird:dbname=firebird:test.fdb
230279 services :
231280 mysql :
232281 image : mysql:8.3
@@ -235,6 +284,15 @@ jobs:
235284 env :
236285 MYSQL_DATABASE : test
237286 MYSQL_ROOT_PASSWORD : root
287+ firebird :
288+ image : jacobalberty/firebird
289+ ports :
290+ - 3050:3050
291+ env :
292+ ISC_PASSWORD : test
293+ FIREBIRD_DATABASE : test.fdb
294+ FIREBIRD_USER : test
295+ FIREBIRD_PASSWORD : test
238296 steps :
239297 - name : git checkout
240298 uses : actions/checkout@v4
@@ -410,7 +468,7 @@ jobs:
410468 -d zend_extension=opcache.so
411469 -d opcache.enable_cli=1
412470 - uses : codecov/codecov-action@v4
413- if : always()
471+ if : ${{ !cancelled() }}
414472 with :
415473 fail_ci_if_error : true
416474 token : ${{ secrets.CODECOV_TOKEN }}
@@ -483,7 +541,7 @@ jobs:
483541 echo opcache.jit_hot_side_exit=1 >> /etc/php.d/opcache.ini
484542 php -v
485543 - name : Test AMPHP
486- if : always()
544+ if : ${{ !cancelled() }}
487545 run : |
488546 repositories="amp cache dns file http parallel parser pipeline process serialization socket sync websocket-client websocket-server"
489547 X=0
@@ -501,9 +559,9 @@ jobs:
501559 done
502560 exit $X
503561 - name : Test Laravel
504- if : always()
562+ if : ${{ !cancelled() }}
505563 run : |
506- git clone https://github.com/laravel/framework.git --branch=master -- depth=1
564+ git clone https://github.com/laravel/framework.git --depth=1
507565 cd framework
508566 git rev-parse HEAD
509567 php /usr/bin/composer install --no-progress --ignore-platform-reqs
@@ -514,7 +572,7 @@ jobs:
514572 exit 1
515573 fi
516574 - name : Test ReactPHP
517- if : always()
575+ if : ${{ !cancelled() }}
518576 run : |
519577 repositories="async cache child-process datagram dns event-loop promise promise-stream promise-timer stream"
520578 X=0
@@ -532,7 +590,7 @@ jobs:
532590 done
533591 exit $X
534592 - name : Test Revolt PHP
535- if : always()
593+ if : ${{ !cancelled() }}
536594 run : |
537595 git clone https://github.com/revoltphp/event-loop.git --depth=1
538596 cd event-loop
@@ -543,7 +601,7 @@ jobs:
543601 exit 1
544602 fi
545603 - name : Test Symfony
546- if : always()
604+ if : ${{ !cancelled() && !inputs.skip_symfony }}
547605 run : |
548606 git clone https://github.com/symfony/symfony.git --depth=1
549607 cd symfony
@@ -564,7 +622,7 @@ jobs:
564622 done
565623 exit $X
566624 - name : Test PHPUnit
567- if : always()
625+ if : ${{ !cancelled() }}
568626 run : |
569627 git clone https://github.com/sebastianbergmann/phpunit.git --branch=main --depth=1
570628 cd phpunit
@@ -575,15 +633,15 @@ jobs:
575633 exit 1
576634 fi
577635 - name : ' Symfony Preloading'
578- if : always()
636+ if : ${{ !cancelled() && !inputs.skip_symfony }}
579637 run : |
580638 php /usr/bin/composer create-project symfony/symfony-demo symfony_demo --no-progress --ignore-platform-reqs
581639 cd symfony_demo
582640 git rev-parse HEAD
583641 sed -i 's/PHP_SAPI/"cli-server"/g' var/cache/dev/App_KernelDevDebugContainer.preload.php
584642 php -d opcache.preload=var/cache/dev/App_KernelDevDebugContainer.preload.php public/index.php
585643 - name : Test Wordpress
586- if : always()
644+ if : ${{ !cancelled() && !inputs.skip_wordpress }}
587645 run : |
588646 git clone https://github.com/WordPress/wordpress-develop.git wordpress --depth=1
589647 cd wordpress
@@ -952,10 +1010,18 @@ jobs:
9521010 - x64 : true
9531011 zts : true
9541012 opcache : true
1013+ asan : false
9551014 - x64 : false
9561015 zts : false
9571016 opcache : false
958- name : " WINDOWS_${{ matrix.x64 && 'X64' || 'X86' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}"
1017+ asan : false
1018+ - x64 : true
1019+ zts : true
1020+ opcache : true
1021+ asan : true
1022+ branch : ' master'
1023+ timeout : 120
1024+ name : " WINDOWS_${{ matrix.x64 && 'X64' || 'X86' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}${{ matrix.asan && '_ASAN' || ''}}"
9591025 runs-on : windows-${{ inputs.windows_version }}
9601026 env :
9611027 PHP_BUILD_CACHE_BASE_DIR : C:\build-cache
@@ -968,6 +1034,7 @@ jobs:
9681034 INTRINSICS : " ${{ matrix.zts && 'AVX2' || '' }}"
9691035 PARALLEL : -j2
9701036 OPCACHE : " ${{ matrix.opcache && '1' || '0' }}"
1037+ ASAN : " ${{ matrix.asan && '1' || '0' }}"
9711038 steps :
9721039 - name : git config
9731040 run : git config --global core.autocrlf false && git config --global core.eol lf
0 commit comments