Skip to content

ci: reuse validated mutation gates on promotion - #810

Merged
blafourcade merged 9 commits into
nextfrom
ci/promotion-avoid-duplicate-mutations
Sep 10, 2026
Merged

ci: reuse validated mutation gates on promotion#810
blafourcade merged 9 commits into
nextfrom
ci/promotion-avoid-duplicate-mutations

Conversation

@blafourcade

Copy link
Copy Markdown
Contributor

🎯 What & why

Promotion snapshots were rerunning the full mutation matrix after the identical source SHA had already passed cli / gate on next. The longest shards held promotion for roughly 30 minutes.

🛠️ How it works

  • Reuse mutations only for a numeric promote/next-to-main-* PR whose exact SHA passed the cli CI push run and its cli / gate on next.
  • Any missing, failed, or unreadable proof retains normal mutation scopes and logs the fallback reason.
  • Coverage, smoke, build, platform, and other non-mutation checks still run on the pull request merge ref.

🧪 How to verify

  • node --test scripts/__tests__/cli-ci-gate-covers-every-job.test.js
  • actionlint .github/workflows/cli-ci.yml
  • ./node_modules/.bin/vitest run --project=architecture from cli/
  • GitHub Actions API journey: successful cli CI push run and cli / gate found for origin/next SHA.

⚠️ Heads-up

Draft PR. The first promotion after merge still needs the normal GitHub Actions run to validate the repository token permissions.

🔗 Linked issue

None.

✅ I certify

  • I DO CERTIFY I READ EACH LINE OF THE PULL REQUEST BECAUSE I AM A SOFTWARE ENGINEER, NOT A AI PUPPY.

@blafourcade
blafourcade marked this pull request as ready for review September 10, 2026 07:11
@blafourcade
blafourcade requested a review from a team as a code owner September 10, 2026 07:11
@blafourcade
blafourcade merged commit 676efbb into next Sep 10, 2026
36 checks passed
@blafourcade
blafourcade deleted the ci/promotion-avoid-duplicate-mutations branch September 11, 2026 08:18
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