Problem
The Laravel 12 include entry in the test matrix sets a custom continue-on-error: true field:
include:
- laravel: 11.*
testbench: 9.*
...
- php: 8.3
laravel: 12.*
testbench: 10.*
...
continue-on-error: true
(.github/workflows/test-matrix.yml:18-33)
This reads as an attempt to mark the Laravel 12 / PHP 8.3 combination as allowed to fail without failing the overall workflow — a common pattern for testing a newer/less-stable dependency combination. However, GitHub Actions only honors continue-on-error when it's set on the job or a step, e.g. continue-on-error: ${{ matrix.continue-on-error }}. Here it's just an arbitrary custom variable inside matrix.include — nothing in the job (.github/workflows/test-matrix.yml:11-45) or any step references matrix.continue-on-error.
Where
.github/workflows/test-matrix.yml:24-33 (the continue-on-error: true field, defined but never consumed)
Why it matters
As written, this configuration is dead — it has zero effect on workflow behavior. If the Laravel 12/PHP 8.3 combination fails, the job fails exactly like any other matrix entry, contradicting the evident intent behind adding the field. Combined with fail-fast: false at the strategy level, a failure here won't cancel sibling jobs, but it will still mark the overall workflow run as failed/red — which is presumably not what was intended when this "experimental" combination was carved out into its own include entry.
Suggested fix
Add continue-on-error: ${{ matrix.continue-on-error == true }} at the job level in test-matrix.yml (job-level continue-on-error does accept an expression referencing matrix.*), so the flag actually takes effect for this combination.
Problem
The Laravel 12
includeentry in the test matrix sets a customcontinue-on-error: truefield:(
.github/workflows/test-matrix.yml:18-33)This reads as an attempt to mark the Laravel 12 / PHP 8.3 combination as allowed to fail without failing the overall workflow — a common pattern for testing a newer/less-stable dependency combination. However, GitHub Actions only honors
continue-on-errorwhen it's set on the job or a step, e.g.continue-on-error: ${{ matrix.continue-on-error }}. Here it's just an arbitrary custom variable insidematrix.include— nothing in the job (.github/workflows/test-matrix.yml:11-45) or any step referencesmatrix.continue-on-error.Where
.github/workflows/test-matrix.yml:24-33(thecontinue-on-error: truefield, defined but never consumed)Why it matters
As written, this configuration is dead — it has zero effect on workflow behavior. If the Laravel 12/PHP 8.3 combination fails, the job fails exactly like any other matrix entry, contradicting the evident intent behind adding the field. Combined with
fail-fast: falseat the strategy level, a failure here won't cancel sibling jobs, but it will still mark the overall workflow run as failed/red — which is presumably not what was intended when this "experimental" combination was carved out into its ownincludeentry.Suggested fix
Add
continue-on-error: ${{ matrix.continue-on-error == true }}at the job level intest-matrix.yml(job-levelcontinue-on-errordoes accept an expression referencingmatrix.*), so the flag actually takes effect for this combination.