diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a8b2b121bf..d5dff77668 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -791,9 +791,9 @@ jobs: fail-fast: false max-parallel: 4 matrix: ${{ fromJSON(needs.scope.outputs.plan).templateMatrix }} - # Balanced like the rest: the pool advertises itself only while a runner is idle, so these legs - # take local slots when free and overflow to hosted otherwise, never queueing behind the pool. - runs-on: ${{ (github.event.pull_request.head.repo.fork || !vars.TN_RUNNER) && 'ubuntu-24.04' || vars.TN_RUNNER }} + # Hosted on purpose: template legs use hosted while the balancer routes builds and tests + # to the local pool, avoiding one routing variable sending the whole burst to a single pool. + runs-on: ubuntu-24.04 timeout-minutes: 30 env: TN_CI_SHA: ${{ needs.scope.outputs.candidate_sha }} diff --git a/scripts/__tests__/ci-structure.spec.ts b/scripts/__tests__/ci-structure.spec.ts index 5bb3835d9e..95a032cabc 100644 --- a/scripts/__tests__/ci-structure.spec.ts +++ b/scripts/__tests__/ci-structure.spec.ts @@ -1070,7 +1070,10 @@ describe("CI pipeline structure", () => { // release writes on GitHub's own machines. const hosted = new Map>([ // golden-path-template runs hosted: its dev server twice failed to answer on a local slot (run 37089715252). - [".github/workflows/ci.yml", new Set(["golden-path-template", "supply-chain"])], + [ + ".github/workflows/ci.yml", + new Set(["golden-path-template", "supply-chain", "template-nonvisual"]), + ], [ ".github/workflows/native-platforms.yml", // publish-android-v8 writes the release; android-emulator-parity is CPU-bound SwiftShader that