From 0ffbe6557d628d5fcf98cfbe6fb794d22e976f38 Mon Sep 17 00:00:00 2001 From: "Christoph M. Becker" Date: Sat, 28 Sep 2024 16:10:32 +0200 Subject: [PATCH] Remove nightly builds of external extensions While the idea to notice inadvertent API breaks early by building some external extensions is nice in theory, it doesn't make much sense in practice: * we would need to check many more extensions (e.g. parallel and uopz come to mind) * we also should check external SAPIs for a better coverage * we also should run that on platforms other than Linux for better coverage * if we introduce a deliberate API break, we need to disable breaking extensions, and to re-enable the builds once the issue if fixed downstream (e.g. the redis build has been disabled in January, but apparently it has been fixed without us having noticed) * all the extensions we currently test have their own GH actions set up; these jobs are likely better suited to notice API break, since they can run respective tests * if an extension build breaks due to downstream issues, we're probably puzzled what's going on, while downstream maintainers likely know what broke, and how to fix it * we would need nightly runs which are at least occasionally green; otherwise it is not that likely that someone even looks at individual issues there (the last green nightly was more than a month ago) All in all, the costs of actually doing these builds seem to outweigh the benefits. As such we drop the night PECL builds. --- .github/workflows/nightly.yml | 113 ---------------------------------- 1 file changed, 113 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index f0a31f9151e90..26e2092ca8e7c 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -844,119 +844,6 @@ jobs: uses: ./.github/actions/notify-slack with: token: ${{ secrets.ACTION_MONITORING_SLACK }} - PECL: - if: github.repository == 'php/php-src' || github.event_name == 'workflow_dispatch' - runs-on: ubuntu-22.04 - env: - CC: ccache gcc - CXX: ccache g++ - steps: - - name: git checkout PHP - uses: actions/checkout@v4 - with: - path: php - - name: git checkout apcu - uses: actions/checkout@v4 - with: - repository: krakjoe/apcu - path: apcu - - name: git checkout imagick - uses: actions/checkout@v4 - with: - repository: Imagick/imagick - path: imagick - - name: git checkout memcached - uses: actions/checkout@v4 - with: - repository: php-memcached-dev/php-memcached - path: memcached - - name: git checkout redis - # Currently fails to build - if: false - uses: actions/checkout@v4 - with: - repository: phpredis/phpredis - path: redis - - name: git checkout xdebug - uses: actions/checkout@v4 - with: - repository: xdebug/xdebug - path: xdebug - - name: git checkout yaml - uses: actions/checkout@v4 - 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 \ - bison \ - re2c - - name: ccache - uses: hendrikmuhs/ccache-action@v1.2 - with: - key: "${{github.job}}-${{hashFiles('php/main/php_version.h')}}" - append-timestamp: false - save: ${{ github.event_name != 'pull_request' }} - - 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 - # Currently fails to build - 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) - - name: Notify Slack - if: failure() - uses: ./.github/actions/notify-slack - with: - token: ${{ secrets.ACTION_MONITORING_SLACK }} WINDOWS: needs: GENERATE_MATRIX if: ${{ needs.GENERATE_MATRIX.outputs.branches != '[]' }}