Repository navigation
Use the runner image's PHP in composer e2e legs - #1659
Mikola Lysenko (mikolalysenko) wants to merge 1 commit into
Conversation
The required composer e2e leg asked setup-php for PHP 8.2, which the ubuntu-24.04 image does not ship, so every run fetched it from the network: ~56s per leg on success, and on 2026-10-21 the download broke and failed the leg with "Could not setup PHP 8.2". Default to 8.3, the image's own PHP, so setup-php only switches to it. composer 2.2 on 8.3 is already covered by composer-compatibility.yml; the nightly composer 1 leg keeps 8.2 through a new `php:` matrix override. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MjB7WMceeF5ZzGrmz93omi
|
bugbot run Generated by Claude Code |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit a185dcd. Configure here.
|
Ready for review (burn-down agent).
Generated by Claude Code |
Final review brief (for the approver)What it does. The composer e2e legs used to make setup-php download PHP 8.2 on every run, which took about 56s and sometimes failed. They now use PHP 8.3, which the ubuntu-24.04 runner image already ships, so setup-php only switches to it. A matrix row can still ask for another PHP with Risk: low. This is a CI-only change to one setup step ( Look here
Verified
Open questions: none. One note: when the runner image moves to a newer PHP, the default 8.3 will start downloading again. That isn't a merge blocker. Auto-merge is armed, so approving sends it straight to the merge queue. Generated by Claude Code |
Problem
The required
e2e (ubuntu-latest, e2e_vendor_composer_build e2e_redirect_composer_build, 2)leg runs in every PR and every merge-queue entry. Its Setup PHP step asks for PHP 8.2, which the ubuntu-24.04 runner image doesn't ship, so setup-php downloads and installs it on every run.✗ PHP Could not setup PHP 8.2after 45s and turnedci-okred. In the merge queue, a failure like this evicts the entry and forces a full rebuild.Root cause
The leg depends on the network for a toolchain the runner image already has in a newer minor version. setup-php can't pin a patch release, and nothing in the composer capstones depends on PHP 8.2 specifically. They pin the composer line so the composer.lock grammar stays stable.
Fix
php-version: ${{ matrix.php || '8.3' }}. 8.3 is the image's own PHP, so setup-php only switches to it and downloads nothing.e2e-extendedgetsphp: '8.2', so it keeps the PHP it has always run on here. composer 2.2 LTS on 8.3 is already covered by composer-compatibility.yml (2.2.30 / php 8.3).Every test still runs where it ran before. No job, matrix row or required-check name changes.
Proof
{composer: 2.2}and{composer: 1, php: 8.2}.python3 -B -m unittest discover -s scripts/tests: 347 tests OK. This is the suite the lint-ecosystems job runs.ci-okis green.Overlap
#1647 also edits ci.yml, but in different hunks, and it lists
php-versionas out of scope.https://claude.ai/code/session_01MjB7WMceeF5ZzGrmz93omi