Skip to content

fix(ci): route pick-runner to hosted runners on public repos - #314

Open
dieterolson wants to merge 1 commit into
mainfrom
fix/ci-hosted-runner-routing
Open

fix(ci): route pick-runner to hosted runners on public repos#314
dieterolson wants to merge 1 commit into
mainfrom
fix/ci-hosted-runner-routing

Conversation

@dieterolson

Copy link
Copy Markdown
Contributor

Problem

pick-runner was hardcoded to d-sorg-fleet and 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 in runner-dashboard), standardising on the fleet-wide CI_RUNNER_MODE variable.

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.

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>

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 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"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge 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 👍 / 👎.

@dieterolson
dieterolson enabled auto-merge (squash) August 14, 2026 19:02
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