Commit dc4f19e86d5 for php.net
commit dc4f19e86d5f4ce14b8f6dce5efd4da77be88a43
Author: Ilija Tovilo <ilija.tovilo@me.com>
Date: Fri May 8 09:37:21 2026 +0200
[skip ci] Remove PECL build
This build is not useful for multiple reasons:
- Legitimate API changes keep making the build red. Frequently it takes 3rd
party extension developers months to fix these issues.
- Once we're annoyed enough by the red build we skip it and then don't revert it
way after it has been fixed.
- True accidental API changes are incredibly rare. I don't believe I've
experienced one yet.
- This build only runs for master, which is also the branch where accidental
changes are least problematic.
Closes GH-21980
diff --git a/.github/matrix.php b/.github/matrix.php
index 111aebfb94d..7970442d705 100644
--- a/.github/matrix.php
+++ b/.github/matrix.php
@@ -61,7 +61,6 @@ function select_jobs($repository, $trigger, $nightly, $labels, $php_version, $re
$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_solaris = in_array('CI: Solaris', $labels, true);
$test_windows = in_array('CI: Windows', $labels, true);
@@ -137,9 +136,6 @@ function select_jobs($repository, $trigger, $nightly, $labels, $php_version, $re
if ($all_jobs || $test_opcache_variation) {
$jobs['OPCACHE_VARIATION'] = true;
}
- if (($all_jobs && $ref === 'master') || $test_pecl) {
- $jobs['PECL'] = true;
- }
if (version_compare($php_version, '8.6', '>=') && ($all_jobs || $test_solaris)) {
$jobs['SOLARIS'] = true;
}
diff --git a/.github/workflows/test-suite.yml b/.github/workflows/test-suite.yml
index af25523805d..7b1850aa107 100644
--- a/.github/workflows/test-suite.yml
+++ b/.github/workflows/test-suite.yml
@@ -827,114 +827,6 @@ jobs:
uses: ./.github/actions/test-libmysqlclient
- name: Verify generated files are up to date
uses: ./.github/actions/verify-generated-files
- PECL:
- if: ${{ fromJson(inputs.branch).jobs.PECL }}
- runs-on: ubuntu-24.04
- steps:
- - name: git checkout PHP
- uses: actions/checkout@v6
- 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:
- repository: krakjoe/apcu
- path: apcu
- - name: git checkout imagick
- uses: actions/checkout@v6
- with:
- repository: Imagick/imagick
- path: imagick
- - name: git checkout memcached
- uses: actions/checkout@v6
- with:
- repository: php-memcached-dev/php-memcached
- path: memcached
- - name: git checkout redis
- if: ${{ false }}
- uses: actions/checkout@v6
- with:
- repository: phpredis/phpredis
- path: redis
- - name: git checkout xdebug
- uses: actions/checkout@v6
- with:
- repository: xdebug/xdebug
- path: xdebug
- - name: git checkout yaml
- uses: actions/checkout@v6
- with:
- repository: php/pecl-file_formats-yaml
- path: yaml
- - name: apt
- run: |
- sudo apt-get update
- sudo apt-get install -y --no-install-recommends \
- ccache \
- libmemcached-dev \
- imagemagick \
- libmagickwand-dev \
- bison \
- re2c
- - name: ccache
- uses: ./.github/actions/ccache
- with:
- name: "${{ github.job }}"
- php_directory: php
- - name: build PHP
- run: |
- cd php
- ./buildconf --force
- ./configure \
- --enable-option-checking=fatal \
- --prefix=/opt/php \
- --enable-cli \
- --disable-all \
- --enable-session \
- --enable-werror
- make -j$(/usr/bin/nproc)
- sudo make install
- - name: build apcu
- run: |
- cd apcu
- /opt/php/bin/phpize
- ./configure --prefix=/opt/php --with-php-config=/opt/php/bin/php-config
- make -j$(/usr/bin/nproc)
- - name: build imagick
- run: |
- cd imagick
- /opt/php/bin/phpize
- ./configure --prefix=/opt/php --with-php-config=/opt/php/bin/php-config
- make -j$(/usr/bin/nproc)
- - name: build memcached
- run: |
- cd memcached
- /opt/php/bin/phpize
- ./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
- ./configure --prefix=/opt/php --with-php-config=/opt/php/bin/php-config
- make -j$(/usr/bin/nproc)
- - name: build xdebug
- run: |
- cd xdebug
- /opt/php/bin/phpize
- ./configure --prefix=/opt/php --with-php-config=/opt/php/bin/php-config
- make -j$(/usr/bin/nproc)
- - name: build yaml
- run: |
- cd yaml
- /opt/php/bin/phpize
- ./configure --prefix=/opt/php --with-php-config=/opt/php/bin/php-config
- make -j$(/usr/bin/nproc)
WINDOWS:
if: ${{ fromJson(inputs.branch).jobs.WINDOWS }}
strategy: