Skip to content

ci: let a repository variable move the storyboard matrix to a larger runner - #8238

Merged
bokelley merged 2 commits into
mainfrom
bokelley/storyboard-runner-variable
Oct 16, 2026
Merged

bokelley merged 2 commits into
mainfrom
bokelley/storyboard-runner-variable

Conversation

@bokelley

Copy link
Copy Markdown
Contributor

What

The storyboard matrices (storyboards, 14 jobs, and sales_storyboard_orchestrators, 8 jobs) now run on

runs-on: ${{ vars.STORYBOARD_RUNNER || 'ubuntu-latest' }}

The small sales_storyboards summary job stays on ubuntu-latest.

Why

The training-agent storyboard workflow uses about half of the repo's runner-minutes. During PR bursts it saturates the org's shared hosted pool of about 60 concurrent jobs (diagnosis in #8225). The org already has a 4-core larger runner, ubuntu-latest-m in the Default Larger Runners group. This change moves the matrices onto it without hard-coding it, so switching runners becomes a settings change, not a code change.

Rollout (settings, not code)

  1. Raise the org's Actions spending limit. Larger runners are billed even for public repos, and ubuntu-latest-m is currently shut down at the cap.
  2. In the Default Larger Runners group, grant adcp access and enable Allow public repositories.
  3. Set the repository variable STORYBOARD_RUNNER=ubuntu-latest-m.

Until step 3, nothing changes. If the larger runner is ever shut down, for example by hitting the spending cap, delete the variable so jobs don't queue forever.

Verification

  • tests/ci-runner-demand-workflows.test.mjs: 8/8, with a new test pinning the two heavy jobs to the variable and the fallback, and the summary job to ubuntu-latest.
  • Changeset scope check passes. A patch changeset is included, because this workflow counts as protocol-scoped, as it did in fix(ci): skip storyboards on draft PRs and cancel superseded scans #8225.
  • The pre-commit hook passed.

🤖 Generated with Claude Code

bokelley and others added 2 commits October 16, 2026 15:21
…runner

The storyboards and sales orchestrator matrices are about half of the
repo's runner-minutes and saturate the org's shared hosted pool. Both now
run on ${{ vars.STORYBOARD_RUNNER || 'ubuntu-latest' }}: setting the
STORYBOARD_RUNNER repository variable to a larger-runner label (e.g.
ubuntu-latest-m) moves them off the shared pool, and deleting it switches
straight back. The summary job stays on ubuntu-latest.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

@aao-secretariat aao-secretariat 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.

Ladon verdict: Escalate to human review

Escalate — gated path requires human/CODEOWNERS approval.

This PR modifies .github/workflows/training-agent-storyboards.yml, which matches the hard approval gate glob .github/workflows/** (gated_paths: true). The current review_decision is REVIEW_REQUIRED, not APPROVED, so the gate is not satisfied (decision table row 2).

The change itself is clean: it routes the storyboard and sales-orchestrator CI matrices through the STORYBOARD_RUNNER repo variable with a fail-safe ubuntu-latest fallback, preserves timeout-minutes: 30, keeps the summary job on ubuntu-latest, and ships a correctly-scoped patch changeset plus a test. The reviewer found no blocking, high, or medium findings.

Escalation reasons

  • .github/workflows/training-agent-storyboards.yml is under a hard approval gate (.github/workflows/**) and review_decision is REVIEW_REQUIRED — human/CODEOWNERS approval required before merge.

Why human review

  • .github/workflows/training-agent-storyboards.yml matches gated path .github/workflows/** and review_decision is REVIEW_REQUIRED (not APPROVED) — human/CODEOWNERS approval required.
  • This PR touches a path under a hard, non-overridable approval gate (.github/workflows/training-agent-storyboards.yml (modified) matches .github/workflows/**) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.

@aao-secretariat aao-secretariat Bot added the ladon/needs-human-review Ladon has escalated this PR for human review. label Oct 16, 2026
@bokelley
bokelley merged commit 68c90b6 into main Oct 16, 2026
57 checks passed
@bokelley
bokelley deleted the bokelley/storyboard-runner-variable branch October 16, 2026 15:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ladon/needs-human-review Ladon has escalated this PR for human review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant