Skip to content

ci: cost optimization (composer caching, scheduled mutation, scope slow gates to one leg) #166

Description

@benjamineckstein

Problem. ci.yml has no Composer caching; mutation testing (>1hr) runs on every PR; the environment-independent slow gates (Pint/PHPStan/Reader-baseline) and full type-coverage run redundantly across all 6 matrix legs.

Evidence.

  • ci.yml jobs lack a caching layer (contrast e2e.yml:34-36, docs.yml:35).
  • The mutation job is under on: push/pull_request with no guard (ci.yml:55-67); CLAUDE.md calls it a CI/manual concern.
  • test:type re-runs the full suite with coverage on a matrix leg; the slow gates repeat per leg though they are PHP-version-independent.

Fix. Add ramsey/composer-install (or actions/cache over ~/.composer/cache); move mutation to schedule + workflow_dispatch (mirror published-smoke.yml); run type-coverage + Pint/PHPStan/Reader-baseline on a single PHP leg only. Keep the test matrix + stan + lint as required PR checks.

Done when. PR CI is meaningfully faster; mutation still runs on a schedule; coverage is unchanged.


Filed from a repo-wide improvement audit; every claim was adversarially verified against source.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ciCI/CD pipeline and tooling

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions