ci(nightly): the sign picker and the visual gate router take the all-nightly reservation first

Merged
TE
5d ago
+6-4

Blacksmith's 16-vCPU Linux label is queueing nightly-next's light controls 5-14 min tonight:

  • run 41374257749: pick-nightly-sign-runner queued from 01:59:15Z;
  • runs 41373656988 and 41372372224: route-visual-gate-nightly and the jobs after it.

pick-nightly-sign-runner is on the path to the feed: signing waits for it.

Change: on attempt 1 of a nightly-next run with vars.CI_NIGHTLY_ONLY_RUNNER == 'glaeda-nightly-only-m4pro', both jobs take the all-nightly reservation first. That is the same guarded first route decide, resolve-nightly-cmux-tui-client and find-nightly-next-recovery already use. Otherwise their old route runs.

  • Both jobs only check out tooling, run Python and bash pickers, and mint the routing App token (GLAEDA_ROUTE_APP_KEY), which pick-nightly-build-runner already mints on these runners (same ci-routing-agent environment). No new secret goes to a new runner class.
  • Both get portable-checks entries in .github/runners.json macos_jobs and leave BLACKSMITH_LINUX_ONLY_DEBT.
  • The sign picker's last route is now the literal 'blacksmith-4vcpu-ubuntu-2404', which is what its fromJSON('[...]')[0] evaluated to. The routing-table guard requires a literal Blacksmith Linux fallback.

Performance

metricbeforeafterdeltaharness
pick-nightly-sign-runner queue5-14 min on blacksmith-16vcpu-ubuntu-2404 (run 41374257749)seconds on an idle reservation runner; measured on the first run after mergeup to -14 minjob timings

Tests: test_nightly_trusted_routing, test_ci_nightly_off_blacksmith, test_runner_routing_table, test_runner_label_policy and test_ci_linux_single_size pass.

Agent session: agent session

šŸ¤– Generated with Claude Code