fix(ci): route pick-runner to hosted runners on public repos - #314
fix(ci): route pick-runner to hosted runners on public repos#314dieterolson wants to merge 1 commit into
Conversation
Drake_Models is public, so standard GitHub-hosted runners are free and unmetered. pick-runner was hardcoded to d-sorg-fleet and emitted that label unconditionally, so every downstream job had to wait for a self-hosted slot before it could even learn where to run. Adopts the canonical dispatcher from Repository_Management/Project_Template/.github/workflows/ci-standard.yml, already in production in runner-dashboard, standardising on the fleet-wide CI_RUNNER_MODE variable. Private repos still fall through to the fleet, so no Actions minutes are billed. Reverting is one variable: CI_RUNNER_MODE=local. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3a4dc57e17
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| mode="${CI_RUNNER_MODE:-auto}" | ||
| if [ "$REPOSITORY_PRIVATE" != "true" ] && [ "$mode" != "local" ]; then | ||
| mode="hosted" | ||
| runner="ubuntu-latest" |
There was a problem hiding this comment.
Update the local-only guard before adding hosted routing
The local-only-workflows job still runs scripts/check_local_only_workflows.py, whose BANNED list includes ubuntu-latest and whose scan only exempts local-only-runner-guard.yml. The newly added literals on lines 33 and 51 therefore make that command exit with status 1, so every CI Standard run will eventually fail even when the hosted quality and test jobs pass; the guard must be updated or removed as part of enabling this route.
Useful? React with 👍 / 👎.
Problem
pick-runnerwas hardcoded tod-sorg-fleetand emitted that label unconditionally, so every downstream job waited for a self-hosted slot just to decide where to run. This repo is public, where standard hosted runners are free and unmetered.Context: at the time of writing the fleet had 6 online runners, all busy, against 145 queued runs org-wide.
Change
Adopts the canonical dispatcher from
Project_Template/.github/workflows/ci-standard.yml(already in production inrunner-dashboard), standardising on the fleet-wideCI_RUNNER_MODEvariable.Billing
No Actions minutes billed. Standard hosted runners are free on public repos, the org has zero larger runners configured, and the expression is gated on
!github.event.repository.private.Reversibility
Set
CI_RUNNER_MODE=local.Verification
YAML parses; 4 jobs intact.