Skip to content

Limit concurrent CI matrix jobs - #1371

Closed
Bret Comnes (bcomnes) wants to merge 2 commits into
mainfrom
bret/limit-ci-matrix-concurrency
Closed

Bret Comnes (bcomnes) wants to merge 2 commits into
mainfrom
bret/limit-ci-matrix-concurrency

Conversation

@bcomnes

@bcomnes Bret Comnes (bcomnes) commented Oct 9, 2026 •

Copy link
Copy Markdown
Member

Large CI matrices across simultaneous PR, merge-group, and main-push runs consume shared GitHub-hosted runner capacity, delaying required checks in other repositories. The October 9 snapshot included 1,072 running or queued jobs in the e2e matrix alone.

Add strategy.max-parallel to the five largest targeted matrices:

Matrix Parallel jobs per run
e2e 8
e2e-windows 2
e2e-macos 2
coverage-docker 4
e2e-full 4

All matrix cases remain enabled. These limits reduce simultaneous runner demand at the cost of longer individual workflow runs. They apply per matrix per run, not across the repository, and do not change already queued runs. Additional controls on simultaneous runs may still be needed to prevent organization-wide saturation.

Validation: git diff --check passed. Actionlint v1.7.12, with shellcheck and pyflakes disabled, reports the same 152 existing matrix-expression diagnostics on the base and this branch, with no new diagnostics. Runtime CI has not completed.


Note

Low Risk
Workflow-only change with no product code or test selection changes; main effect is slower wall-clock for affected matrices when many legs are queued.

Overview
Caps how many matrix legs run at once in the CI workflow so large e2e and docker coverage fan-outs stop monopolizing shared GitHub-hosted runners.

strategy.max-parallel is added under five jobs in .github/workflows/ci.yml: e2e (8), e2e-windows and e2e-macos (2 each), coverage-docker and e2e-full (4 each). Matrix rows and test coverage are unchanged; only per-workflow-run concurrency is throttled, which should lengthen those jobs slightly while reducing org-wide queue pressure.

Reviewed by Cursor Bugbot for commit 7d6ed07. Configure here.

Reduce runner contention by limiting the largest test matrices.
Keep all test cases while allowing fewer jobs to run at once.

Assisted-by: Codex:GPT-6
Allow eight Linux E2E jobs and four coverage or full E2E jobs.
Keep Windows and macOS E2E concurrency at two jobs.

Assisted-by: Codex:GPT-6
@mikolalysenko

Copy link
Copy Markdown
Collaborator

Already fixed.

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.

2 participants