From bc046ec2a1050e49557d1290aae8d284f2f0236f Mon Sep 17 00:00:00 2001 From: James Griffin Date: Thu, 20 Aug 2026 14:28:49 -0300 Subject: [PATCH] Fold PHPCS and PHPStan into one job and test PHP 8.5 The two jobs were identical up to their final step, each paying for its own Setup PHP. That step is the flaky one (#178), so running it twice to reach two short commands was two chances for a run to fall over instead of one. They are now steps in a single Coding Standards & Static Analysis job. The one thing given up is that PHPCS failing now stops the job before PHPStan reports, where before the two ran in parallel and both spoke. That seemed a fair trade for halving the exposure, and the fix for a PHPCS failure rarely depends on knowing PHPStan's verdict at the same time. PHP 8.5 joins the test matrix. composer.json already allows it at >=8.1 and the suite passes on 8.5.9 locally: 915 tests, PHPStan and PHPCS clean, check-platform-reqs satisfied. 8.4 is deliberately not added, only 8.5. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01Uw545F1vveNJKjzLxdi2ks --- .gitea/workflows/ci.yml | 34 +++++++++------------------------- 1 file changed, 9 insertions(+), 25 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index c14788b..815f95d 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -8,8 +8,13 @@ on: pull_request: jobs: - lint: - name: Coding Standards + # PHPCS and PHPStan share a job so the two of them draw once on Setup PHP + # rather than twice. That step is slow and intermittently fails on 8.3 + # (see #178), so every job that can be folded into another is one less + # chance for a run to fall over. They run as separate steps, and PHPCS + # failing stops the job before PHPStan reports. + quality: + name: Coding Standards & Static Analysis runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -32,28 +37,6 @@ jobs: - name: Run PHPCS run: composer cs - - static-analysis: - name: PHPStan - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: '8.3' - tools: composer:v2 - - - name: Cache Composer packages - uses: actions/cache@v3 - with: - path: ~/.composer/cache - key: composer-${{ hashFiles('composer.json') }} - - - name: Install dependencies - run: composer install --prefer-dist --no-progress --no-interaction - - name: Run PHPStan run: composer lint @@ -67,6 +50,7 @@ jobs: - '8.1' - '8.2' - '8.3' + - '8.5' steps: - uses: actions/checkout@v4 @@ -108,7 +92,7 @@ jobs: runs-on: ubuntu-latest # Only build a shippable artifact once changes land on main, and only # after the quality gates pass. - needs: [lint, static-analysis, test, no-debug] + needs: [quality, test, no-debug] if: github.event_name == 'push' && github.ref == 'refs/heads/main' steps: - uses: actions/checkout@v4