From a1de4ad54326f7fe0caac3026b12a7079239038b Mon Sep 17 00:00:00 2001 From: Ilija Tovilo Date: Wed, 18 Feb 2026 12:46:04 +0100 Subject: [PATCH 1/6] Fix ccache in pecl job --- .github/workflows/nightly.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 1d066ec7f9a0..d73bf5d98d95 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -814,6 +814,9 @@ jobs: with: path: php ref: ${{ fromJson(inputs.branch).ref }} + # Used for ccache action + - name: Move .github + run: mv php/.github . - name: git checkout apcu uses: actions/checkout@v6 with: From cb4ea1d38a624784db6a7adb27fdbf64b715a012 Mon Sep 17 00:00:00 2001 From: Ilija Tovilo Date: Wed, 18 Feb 2026 12:55:40 +0100 Subject: [PATCH 2/6] Fix nightly job selection The schedule and workflow_dispatch triggers should imply all jobs. --- .github/nightly_matrix.php | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/nightly_matrix.php b/.github/nightly_matrix.php index 0fd712f29db6..acb27a5cfc1b 100644 --- a/.github/nightly_matrix.php +++ b/.github/nightly_matrix.php @@ -46,11 +46,12 @@ function get_current_version(): array { return [$major, $minor]; } -function select_jobs($trigger, $labels, $php_version, $ref, $all_variations) { +function select_jobs($nightly, $labels, $php_version, $ref, $all_variations) { $no_jobs = in_array('CI: No jobs', $labels, true); - $all_jobs = in_array('CI: All jobs', $labels, true); + $all_jobs = in_array('CI: All jobs', $labels, true) || $nightly; $test_alpine = in_array('CI: Alpine', $labels, true); $test_community = in_array('CI: Community', $labels, true); + $test_coverage = in_array('CI: COVERAGE', $labels, true); $test_freebsd = in_array('CI: FreeBSD', $labels, true); $test_libmysqlclient = in_array('CI: libmysqlclient', $labels, true); $test_linux_ppc64 = in_array('CI: Linux PPC64', $labels, true); @@ -59,6 +60,7 @@ function select_jobs($trigger, $labels, $php_version, $ref, $all_variations) { $test_macos = in_array('CI: macOS', $labels, true); $test_msan = in_array('CI: MSAN', $labels, true); $test_opcache_variation = in_array('CI: Opcache Variation', $labels, true); + $test_pecl = in_array('CI: PECL', $labels, true); $test_windows = in_array('CI: Windows', $labels, true); $jobs = []; @@ -71,7 +73,7 @@ function select_jobs($trigger, $labels, $php_version, $ref, $all_variations) { : ['type' => ['asan']]; $jobs['COMMUNITY']['config']['symfony_version'] = version_compare($php_version, '8.4', '>=') ? '8.1' : '7.4'; } - if ($trigger === 'schedule' && $ref === 'master') { + if (($all_jobs && $ref === 'master') || $test_coverage) { $jobs['COVERAGE'] = true; } if ($all_jobs || $test_libmysqlclient) { @@ -119,7 +121,7 @@ function select_jobs($trigger, $labels, $php_version, $ref, $all_variations) { if ($all_jobs || $test_opcache_variation) { $jobs['OPCACHE_VARIATION'] = true; } - if ($trigger === 'schedule' && $ref === 'master') { + if (($all_jobs && $ref === 'master') || $test_pecl) { $jobs['PECL'] = true; } if ($all_jobs || !$no_jobs || $test_windows) { @@ -157,11 +159,12 @@ function select_jobs($trigger, $labels, $php_version, $ref, $all_variations) { $labels = json_decode($argv[4] ?? '[]', true) ?? []; $labels = array_column($labels, 'name'); -$all_variations = $trigger === 'schedule' || $trigger === 'workflow_dispatch' || in_array('CI: All variations', $labels, true); +$nightly = $trigger === 'schedule' || $trigger === 'workflow_dispatch'; +$all_variations = $nightly || in_array('CI: All variations', $labels, true); foreach ($branches as &$branch) { $php_version = $branch['version'][0] . '.' . $branch['version'][1]; - $branch['jobs'] = select_jobs($trigger, $labels, $php_version, $branch['ref'], $all_variations); + $branch['jobs'] = select_jobs($nightly, $labels, $php_version, $branch['ref'], $all_variations); $branch['config']['ubuntu_version'] = version_compare($php_version, '8.5', '>=') ? '24.04' : '22.04'; } From 220dcf9966ff2ccf6bf9cbebf0b128388bac0e94 Mon Sep 17 00:00:00 2001 From: Ilija Tovilo Date: Wed, 18 Feb 2026 13:43:17 +0100 Subject: [PATCH 3/6] [skip ci] Limit "Update clang" step to 10 minutes Just like brew this can stall, apparently... --- .github/workflows/nightly.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index d73bf5d98d95..700c45ec6390 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -310,6 +310,7 @@ jobs: with: ref: ${{ fromJson(inputs.branch).ref }} - name: Update clang + timeout-minutes: 10 uses: ./.github/actions/macos-update-clang - name: brew timeout-minutes: 10 From 27b41d310d2b26013b96846e7ad0321f9a77bbc2 Mon Sep 17 00:00:00 2001 From: Ilija Tovilo Date: Wed, 18 Feb 2026 13:50:02 +0100 Subject: [PATCH 4/6] [skip ci] Mark curl_persistent_share_002.phpt as not repeatable The repeated request will re-use the connection from the first one, failing the connect_time check. --- ext/curl/tests/curl_persistent_share_002.phpt | 1 + 1 file changed, 1 insertion(+) diff --git a/ext/curl/tests/curl_persistent_share_002.phpt b/ext/curl/tests/curl_persistent_share_002.phpt index fbd6631b9ba1..0220adeb6a6f 100644 --- a/ext/curl/tests/curl_persistent_share_002.phpt +++ b/ext/curl/tests/curl_persistent_share_002.phpt @@ -4,6 +4,7 @@ Curl persistent share handle test with different options curl --SKIPIF-- --FILE-- From 431dbabbfd3d617bf52a82f48f0738d8eb80500c Mon Sep 17 00:00:00 2001 From: Jorg Sowa Date: Sun, 8 Feb 2026 22:29:44 +0100 Subject: [PATCH 5/6] [skip ci] Re-enabled xdebug in nightly job Closes GH-21170 Closes GH-21248 --- .github/workflows/nightly.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 700c45ec6390..eeb961b98535 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -839,7 +839,6 @@ jobs: repository: phpredis/phpredis path: redis - name: git checkout xdebug - if: false uses: actions/checkout@v6 with: repository: xdebug/xdebug @@ -901,7 +900,6 @@ jobs: ./configure --prefix=/opt/php --with-php-config=/opt/php/bin/php-config make -j$(/usr/bin/nproc) - name: build xdebug - if: false run: | cd xdebug /opt/php/bin/phpize From 39afa46f54414cbf17ecab901cacffe7b13bc711 Mon Sep 17 00:00:00 2001 From: Ilija Tovilo Date: Wed, 18 Feb 2026 14:03:53 +0100 Subject: [PATCH 6/6] [skip ci] Disable redis in pecl build --- .github/workflows/nightly.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index eeb961b98535..4fffc701f926 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -834,6 +834,7 @@ jobs: repository: php-memcached-dev/php-memcached path: memcached - name: git checkout redis + if: ${{ false }} uses: actions/checkout@v6 with: repository: phpredis/phpredis @@ -894,6 +895,7 @@ jobs: ./configure --prefix=/opt/php --with-php-config=/opt/php/bin/php-config make -j$(/usr/bin/nproc) - name: build redis + if: ${{ false }} run: | cd redis /opt/php/bin/phpize