diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1b46d880d..3e06020ea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -285,7 +285,11 @@ jobs: # job so a run starts no extra runner. release-readiness: if: github.event.pull_request.draft != true - runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} + # GitHub-hosted, not Depot: a ~10 s job that gates coverage, e2e-build and + # most of the run, so a slow Depot boot here delays every job behind it + # (#1795). If hosted Linux backs up, set the repo variable + # RELEASE_READINESS_RUNNER (e.g. depot-ubuntu-24.04-4); no merge needed. + runs-on: ${{ vars.RELEASE_READINESS_RUNNER || 'ubuntu-latest' }} timeout-minutes: 10 permissions: contents: read diff --git a/scripts/tests/test_ci_scheduling.py b/scripts/tests/test_ci_scheduling.py index 3c94c5587..32bcad39f 100644 --- a/scripts/tests/test_ci_scheduling.py +++ b/scripts/tests/test_ci_scheduling.py @@ -45,6 +45,13 @@ def test_ci_ok_defaults_to_a_hosted_runner(self): runs_on = [line for line in JOBS["ci-ok"] if line.startswith(" runs-on:")] self.assertEqual(runs_on, [" runs-on: ${{ vars.CI_OK_RUNNER || 'ubuntu-latest' }}"]) + def test_release_readiness_defaults_to_a_hosted_runner(self): + # A ~10 s gate in front of coverage and e2e-build must not pay a Depot + # host boot on the critical path (#1795); the variable is the escape hatch. + runs_on = [line for line in JOBS["release-readiness"] if line.startswith(" runs-on:")] + self.assertEqual(runs_on, + [" runs-on: ${{ vars.RELEASE_READINESS_RUNNER || 'ubuntu-latest' }}"]) + def test_expensive_jobs_cannot_start_after_a_failed_preflight(self): cheap = {"clippy", "lint-ecosystems", "release-readiness", "dispatch-tests", "ci-ok"} # windows-compile-check is the lean queue's only Windows job and sits