Skip to content

ci: prove PHP 8.5, and make the required check reachable - #74

Merged
HafizMMoaz merged 1 commit into
mainfrom
ci/php-85-and-required-check
Nov 1, 2026
Merged

HafizMMoaz merged 1 commit into
mainfrom
ci/php-85-and-required-check

Conversation

@HafizMMoaz

Copy link
Copy Markdown
Member

Two things, both about the gate rather than the code.

1. PHP 8.5 was never tested

The matrix covered 8.2, 8.3 and 8.4. composer.json claims php >=8.2 with no upper bound, so 8.5 is in the supported range and nothing ran against it. Added.

2. The required status check has never been reachable

This is the one worth attention. The branch ruleset requires a check named exactly test, and no such check has ever been published.

The matrix job was named test / php ${{ matrix.php }} / ${{ matrix.os }}, so what actually appears on a pull request is:

lint
test / php 8.2 / ubuntu-latest
test / php 8.3 / ubuntu-latest
test / php 8.4 / ubuntu-latest

A bare test is not among them. So the required check could never be satisfied, and every merge on this repo has needed an admin bypass to get through - #73 went in that way. The ruleset has been decorative rather than protective.

Renamed the matrix job to tests and added a small job that carries the name test and fails unless every leg succeeded:

test:
  needs: tests
  if: always()
  # fails unless needs.tests.result == 'success'

The ruleset now gates on the real result, and the supported PHP versions can change without anyone having to remember to edit it.

Note on the contexts

The matrix contexts are renamed from test / php X / os to tests / php X / os. Nothing required them, so nothing breaks. If you have anything outside the ruleset keyed to the old names, this is the change to know about.

cache has the same ruleset requirement but publishes a genuine non-matrix test job, so it was never affected. autoload uses this same aggregating shape.

Two things, both about the gate rather than the code.

The matrix covered 8.2, 8.3 and 8.4. composer.json claims php >=8.2 with
no upper bound, so 8.5 is in the supported range and nothing ran against
it. Added it.

The branch ruleset requires a status check named exactly "test", and no
such check has ever been published. The matrix job was named
"test / php ${{ matrix.php }} / ${{ matrix.os }}", so what appears on a
pull request is "test / php 8.2 / ubuntu-latest" and so on. A bare
"test" never existed, so the required check could never be satisfied and
every merge needed an admin bypass to get through. PR #73 went in that
way.

Renamed the matrix job to "tests" and added a small job that carries the
name "test" and fails unless every leg succeeded. The ruleset now gates
on the real result, and the supported versions can change without
touching it.
@HafizMMoaz
HafizMMoaz merged commit 59bd370 into main Nov 1, 2026
6 checks passed
@HafizMMoaz
HafizMMoaz deleted the ci/php-85-and-required-check branch November 1, 2026 22:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant