Skip to content

ci: optimize test workflow without reducing coverage - #107

Merged
jordyloeuille merged 4 commits into
mainfrom
perf/optimize-test-workflow
Aug 24, 2026
Merged

ci: optimize test workflow without reducing coverage#107
jordyloeuille merged 4 commits into
mainfrom
perf/optimize-test-workflow

Conversation

@jordyloeuille

Copy link
Copy Markdown
Contributor

Summary

  • remove repeated OS-independent checks from every PHP/Laravel and Windows/macOS job while preserving all supported compatibility pairs
  • let the coverage job own PHP 8.5 / Laravel 13 instead of executing the same Pest suite twice for that exact stack
  • keep the full Pest suite on both Windows and macOS boundary stacks, while adding an explicit LF-normalization regression so the previous Windows CRLF failure remains protected
  • run static analysis against latest and lowest Laravel 12/13 boundaries, and audit latest and lowest dependency sets for both framework majors
  • run dependency-free smoke analysis on the oldest and newest supported PHP boundaries
  • increase matrix parallelism and remove the artificial COMPOSER_MAX_PARALLEL_HTTP=4 cap so Composer uses its documented default parallelism
  • retain coverage, lowest-dependency checks, distribution validation and the aggregate Tests / Required merge gate

Why

The previous workflow was safe but highly redundant. Per pull request, Composer validation/audit and the dependency-free smoke matrix were repeated roughly 13 times, PHPStan roughly 13 times and Pint 11 times. Four platform jobs each ran composer check:all, although most of those checks are independent of the operating system. The four platform jobs were also limited to two concurrent runners.

The expensive part is dependency setup/orchestration, not the Pest suite itself. This refactor keeps runtime-sensitive tests where they matter and executes invariant checks once on canonical dependency boundaries.

Coverage model after this PR

  • every supported Linux PHP/Laravel pair is still tested, with PHP 8.5 / Laravel 13 covered by the enforced coverage job
  • Windows: PHP 8.2 / Laravel 12 and PHP 8.5 / Laravel 13 run the full Pest suite
  • macOS: PHP 8.2 / Laravel 12 and PHP 8.5 / Laravel 13 run the full Pest suite
  • latest and lowest Laravel 12/13 dependency sets remain audited and statically analyzed
  • Composer metadata, strict autoloading, Pint, documentation contracts and benchmark bootstrap remain merge-blocking
  • the 80% coverage baseline and distribution archive validation remain merge-blocking

Validation

This PR must prove the optimized workflow on itself. It will only be merged after every matrix job and Tests / Required succeed on the exact final head.

@qodo-code-review

Copy link
Copy Markdown

ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing

@jordyloeuille
jordyloeuille merged commit df62f46 into main Aug 24, 2026
17 checks passed
@jordyloeuille
jordyloeuille deleted the perf/optimize-test-workflow branch August 24, 2026 20:31
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