Skip to content

docs(ci): add runner-capacity diagnosis for slow pipelines#117

Merged
CybotTM merged 3 commits into
mainfrom
feat/retro-ci-runner-capacity
Jul 15, 2026
Merged

docs(ci): add runner-capacity diagnosis for slow pipelines#117
CybotTM merged 3 commits into
mainfrom
feat/retro-ci-runner-capacity

Conversation

@CybotTM

@CybotTM CybotTM commented Jul 15, 2026

Copy link
Copy Markdown
Member

What

New reference references/ci-runner-capacity.md (indexed from SKILL.md): how to diagnose a slow GitHub Actions pipeline before optimizing it.

The lesson, from a real CI-speedup engagement: after cutting a repo's functional-test compute by 57% and each cell ~4×, PR wall clock did not move — because the pipeline was runner-acquisition-bound, not job-duration-bound. Peak concurrency was 11–15 against a cap of 20, so jobs were waiting individually for machines, not on each other; trimming job count would have bought nothing.

The reference documents:

  • the org-wide concurrency cap by plan (Free 20 / Team 60 / Enterprise 500), independent of repo visibility;
  • the two regimes (cap-bound vs acquisition-bound) and why the distinction decides the fix;
  • how to measure — Σ queue job-min vs Σ run job-min, and a sweep-line peak concurrency — with a ready gh api snippet;
  • that under the acquisition-bound regime fan-out is correct and the real lever is capacity (plan upgrade / self-hosted, with the public-repo untrusted-code caveat);
  • that cutting compute still helps (lowers org-wide queue pressure) even when it buys no wall clock;
  • controlling for run-to-run queue noise (compare runs at similar queue pressure, not two arbitrary runs).

Notes

  • New reference file + one SKILL.md index row. Body word count 436 (well under the cap). No version bump (release flow owns that).
  • markdownlint-cli2: 0 errors. Signed + DCO.

Came from /retro: yes

Copilot AI review requested due to automatic review settings July 15, 2026 11:37

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions github-actions Bot added documentation Improvements or additions to documentation skill labels Jul 15, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds a new reference document, ci-runner-capacity.md, which provides guidance on diagnosing slow GitHub Actions pipelines by distinguishing between cap-bound and acquisition-bound regimes, and registers it in SKILL.md. Feedback was provided to replace angle-bracket placeholders (e.g., <run-id>) in the bash code block with plain text placeholders to avoid shell redirection syntax errors.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread skills/github-project/references/ci-runner-capacity.md Outdated
@github-actions

Copy link
Copy Markdown
Contributor

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

CybotTM added 2 commits July 15, 2026 13:41
A slow GitHub Actions pipeline is often runner-acquisition-bound, not
job-duration-bound, and the two need different fixes. New reference
(references/ci-runner-capacity.md) documents:

- the org-wide concurrency cap by plan (Free 20 / Team 60 / Enterprise 500),
  independent of repo visibility;
- how to tell the regimes apart — Σ queue job-min vs Σ run job-min, and peak
  concurrency vs the cap — before optimizing;
- why, when peak concurrency is below the cap, trimming job count buys ~0 wall
  clock (jobs wait for machines in parallel; fan-out is correct);
- that the real fix there is capacity (plan upgrade / self-hosted, with the
  public-repo untrusted-PR-code caveat), while cutting compute still lowers
  org-wide queue pressure for every repo on the shared pool;
- controlling for run-to-run queue noise by comparing runs at similar queue
  pressure.

Indexed from SKILL.md.

Came from /retro: yes

Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
Address review: <run-id> in a bash block is a shell redirection if pasted.
Use RUN_ID.

Came from /retro: yes

Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
@CybotTM
CybotTM force-pushed the feat/retro-ci-runner-capacity branch from 9d4abe9 to 2dc03d8 Compare July 15, 2026 11:41
The runner-capacity index row pushed SKILL.md to 505 words (cap 500). Shorten
the row label and drop the redundant one-line subtitle (it restated the
frontmatter description).

Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
@sonarqubecloud

Copy link
Copy Markdown

@CybotTM
CybotTM merged commit bc224fb into main Jul 15, 2026
18 checks passed
@CybotTM
CybotTM deleted the feat/retro-ci-runner-capacity branch July 15, 2026 11:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation skill

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants