Skip to content

fix(ci): serialize mutation-testing runs globally, not per-branch - #1049

Merged
Mearman merged 1 commit into
mainfrom
fix/mutation-workflow-concurrency
Sep 6, 2026
Merged

fix(ci): serialize mutation-testing runs globally, not per-branch#1049
Mearman merged 1 commit into
mainfrom
fix/mutation-workflow-concurrency

Conversation

@Mearman

@Mearman Mearman commented Sep 6, 2026

Copy link
Copy Markdown
Member

The mutation-testing workflow's concurrency group was scoped to `github.ref`, which only stops the same branch from running two overlapping mutation jobs. It does nothing to stop main and several PR branches each spinning up their own full 8-shard run at the same time.

Confirmed directly today: four simultaneous mutation runs (main plus three PR branches) starved the shared runner pool of capacity every other workflow needs, leaving every open PR's required checks -- and main's own post-merge CI -- queued with zero progress for over an hour, even though GitHub's status page showed no incident.

Fix: a single fixed concurrency group across every ref, so a new mutation run queues behind whichever one is already active instead of running alongside it. `cancel-in-progress` stays false -- this is a queue, not a per-ref supersession, so every run still executes eventually, just serialised. Mutation testing is deliberately not a required check, so the delay costs nothing merge-blocking currently depends on.

…-ref

The concurrency group was scoped to github.ref, which only stops the
SAME branch from running two overlapping mutation jobs -- it does
nothing to stop main and several PR branches each spinning up their
own full 8-shard run at once. Confirmed directly: four simultaneous
mutation runs across main and three PR branches starved the shared
runner pool of capacity every other workflow needs, leaving every
open PR's required checks (and main's own post-merge CI) queued with
zero progress for over an hour.

A single fixed group across every ref queues a superseding run behind
whichever one is already active instead of running it at all -- exactly
what a non-required, delay-tolerant job like this one should do.
cancel-in-progress stays false: this is now a queue, not a per-ref
supersession, so there is nothing stale to cancel -- every queued run
still executes eventually, just serialised.
@Mearman
Mearman marked this pull request as ready for review September 6, 2026 20:48
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 6, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
🔒 Security Review Completed 2026-09-06T20:51:24.236091Z 2909d80 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@Mearman
Mearman merged commit 5fe8da5 into main Sep 6, 2026
24 of 27 checks passed
@Mearman
Mearman deleted the fix/mutation-workflow-concurrency branch September 6, 2026 23:57
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