diff --git a/.github/workflows/bun-compatibility.yml b/.github/workflows/bun-compatibility.yml index 7d04cd593..a16bb4a9c 100644 --- a/.github/workflows/bun-compatibility.yml +++ b/.github/workflows/bun-compatibility.yml @@ -116,7 +116,7 @@ jobs: exclude: # macOS legs run on push to main (and nightly where scheduled), not per PR push. - os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 30 steps: - name: Checkout @@ -174,7 +174,7 @@ jobs: - {os: windows-latest, bun: '1.0.36'} # macOS legs run on push to main (and nightly where scheduled), not per PR push. - os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 30 steps: - name: Checkout @@ -374,7 +374,7 @@ jobs: exclude: # macOS legs run on push to main (and nightly where scheduled), not per PR push. - os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 30 steps: - name: Checkout diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3b1abffd8..2de0d6fcd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,12 +43,21 @@ concurrency: group: ci-${{ github.event.pull_request.number || (github.event_name == 'push' && github.sha) || github.ref }}${{ github.event_name == 'schedule' && '-nightly' || '' }} cancel-in-progress: ${{ github.event_name == 'pull_request' }} +# Linux jobs run on Depot's runners (depot-ubuntu-*-4: 4 vCPU, like GitHub's +# public-repo ubuntu-latest), which don't draw on the org's shared GitHub-hosted +# concurrency pool, where merge-queue jobs used to wait behind PR CI. Matrix +# values stay `ubuntu-latest`/`ubuntu-22.04`, so job names, cache keys and +# scripts are unchanged; only `runs-on` maps them. Kill switch: set the +# repository variable DISABLE_DEPOT_RUNNERS=true to fall back to GitHub-hosted +# runners (the same switch depscan uses). The compatibility workflows follow +# the same mapping. Release, publish and merge-queue workflows stay +# GitHub-hosted (provenance / write tokens). jobs: # Required independently of ci-ok so the merge queue sees a compile/lint # failure immediately. Expensive jobs also depend on this preflight. clippy: if: github.event.pull_request.draft != true - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 20 steps: - name: Checkout @@ -92,7 +101,7 @@ jobs: node-addon: if: github.event.pull_request.draft != true needs: clippy - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 30 steps: - name: Checkout @@ -126,7 +135,7 @@ jobs: # test harnesses. lint-ecosystems: if: github.event.pull_request.draft != true - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 10 steps: - name: Checkout @@ -218,7 +227,7 @@ jobs: # tag doesn't already exist. release-readiness: if: github.event.pull_request.draft != true - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} steps: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -273,7 +282,7 @@ jobs: exclude: # macOS legs run on main, the merge queue and nightly, not per PR push. - os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 50 env: VEXCTL_VERSION: v0.3.0 @@ -434,7 +443,7 @@ jobs: # queue already skips this job because each constituent PR ran it. if: github.event.pull_request.draft != true && github.event_name != 'merge_group' needs: clippy - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} strategy: fail-fast: false matrix: @@ -486,7 +495,7 @@ jobs: # numbers are report-only so contributors get visibility without flaky # CI when coverage shifts naturally with test edits. A failing TEST # fails the job: this is the Linux leg of `test`. - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 35 permissions: contents: read @@ -594,7 +603,7 @@ jobs: docker-base: if: github.event.pull_request.draft != true needs: clippy - runs-on: ubuntu-22.04 + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-22.04' || 'depot-ubuntu-22.04-4' }} timeout-minutes: 30 permissions: contents: read @@ -650,7 +659,7 @@ jobs: # container ships fails to load. ubuntu-22.04's older glibc is # the highest base that's forward-compatible with debian:12. needs: docker-base - runs-on: ubuntu-22.04 + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-22.04' || 'depot-ubuntu-22.04-4' }} # sbt's image bakes three JDKs and warm sbt / Mill / scala-cli caches. timeout-minutes: ${{ matrix.ecosystem == 'sbt' && 45 || 30 }} permissions: @@ -775,7 +784,7 @@ jobs: # single lcov.info. lcov(1) handles the union — same files are # summed line-by-line so a line covered by ANY test counts. needs: [coverage, coverage-docker] - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 15 permissions: contents: read @@ -838,7 +847,7 @@ jobs: dispatch-tests: if: github.event.pull_request.draft != true - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 10 steps: - name: Checkout @@ -880,7 +889,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest] - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 45 env: &e2e-build-env CARGO_PROFILE_DEV_DEBUG: '0' @@ -938,7 +947,7 @@ jobs: fail-fast: false matrix: os: [windows-latest] - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 60 env: *e2e-build-env steps: *e2e-build-steps @@ -950,7 +959,7 @@ jobs: fail-fast: false matrix: os: [macos-latest] - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 45 env: *e2e-build-env steps: *e2e-build-steps @@ -1276,7 +1285,7 @@ jobs: # deno; VEX must attest nothing), one leg per major. - {os: ubuntu-latest, suite: e2e_vex_build, test_filter: 'deno:: --ignored', deno: '1.46.3'} - {os: ubuntu-latest, suite: e2e_vex_build, test_filter: 'deno:: --ignored', deno: '2.9.7'} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} # The real-toolchain capstones loop several releases per leg (pip, # pipenv) or bootstrap a tool from PyPI before the suite (poetry, pdm, # hatch), hence more than the 25 minutes the older legs needed. @@ -1782,7 +1791,7 @@ jobs: - {os: windows-latest, suite: e2e_redirect_pnpm_build, test_filter: '--ignored --skip pnpm_pinned_matrix'} - {os: windows-latest, suite: e2e_vendor_jvm_build, jvm_tool: maven, maven: '3.9.16', test_filter: '--ignored maven_reactor'} - {os: windows-latest, suite: e2e_vendor_jvm_build, jvm_tool: gradle, gradle: '8.14.3', java: '17', test_filter: '--ignored gradle_multi_project'} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 40 env: *e2e-env steps: *e2e-steps @@ -1833,7 +1842,7 @@ jobs: - {os: macos-latest, suite: e2e_vendor_maven_build, jvm_tool: maven, maven: '3.9.16'} - {os: macos-latest, suite: e2e_vendor_jvm_build, jvm_tool: maven, maven: '3.9.16', test_filter: '--ignored maven_reactor'} - {os: macos-latest, suite: e2e_nuget_dotnet_build, dotnet: '8'} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} # The real-toolchain capstones loop several releases per leg (pip, # pipenv) or bootstrap a tool from PyPI before the suite (poetry, pdm, # hatch), hence more than the 25 minutes the older legs needed. @@ -1884,7 +1893,7 @@ jobs: - {os: ubuntu-latest, suite: e2e_nuget_dotnet_build, dotnet: '7'} - {os: ubuntu-latest, suite: e2e_nuget_dotnet_build, dotnet: '8'} - {os: ubuntu-latest, suite: e2e_nuget_dotnet_build, dotnet: '9'} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 40 # What .cargo/config.toml's [env] gives processes cargo launches; these # legs launch the test binaries themselves. @@ -1916,7 +1925,7 @@ jobs: # pull_request runs of its PR into main) run it too. if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || github.head_ref == 'release/v5-prerelease' needs: docker-base - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: ${{ matrix.ecosystem == 'sbt' && 45 || 35 }} permissions: contents: read @@ -2002,7 +2011,7 @@ jobs: # Only wait for the clippy preflight. if: github.event.pull_request.draft != true needs: clippy - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 40 strategy: fail-fast: false @@ -2056,7 +2065,7 @@ jobs: - {os: ubuntu-latest, yarn: '4.1.0'} - {os: ubuntu-latest, yarn: '4.18.0'} - {os: windows-latest, yarn: '4.12.0'} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 30 steps: &yarn-berry-steps - name: Checkout @@ -2098,7 +2107,7 @@ jobs: # of the spread (4.6.0, 4.12.0 on ubuntu) is yarn-berry-full. include: - {os: macos-latest, yarn: '4.12.0'} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 30 steps: *yarn-berry-steps @@ -2113,7 +2122,7 @@ jobs: include: - {os: ubuntu-latest, yarn: '4.6.0'} - {os: ubuntu-latest, yarn: '4.12.0'} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 30 steps: *yarn-berry-steps @@ -2130,7 +2139,7 @@ jobs: # e2e-build only (its binaries; only the matching OS build is needed); # see yarn-classic-matrix on test/coverage. needs: [e2e-build] - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 40 # What .cargo/config.toml's [env] gives processes cargo launches; these # legs launch the test binaries themselves. @@ -2210,7 +2219,7 @@ jobs: cargo-vex-matrix-windows: name: cargo ${{ matrix.toolchain }} lock-v${{ matrix.lock || 'own' }} (${{ matrix.os }}) needs: [e2e-build-windows] - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 40 env: *e2e-env strategy: @@ -2226,7 +2235,7 @@ jobs: if: github.event_name != 'pull_request' name: cargo ${{ matrix.toolchain }} lock-v${{ matrix.lock || 'own' }} (${{ matrix.os }}) needs: [e2e-build-macos] - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 40 # What .cargo/config.toml's [env] gives processes cargo launches; these # legs launch the test binaries themselves. @@ -2247,7 +2256,7 @@ jobs: # merge_group runs the pull_request tier: the queue gates on ci-ok. if: (github.event_name != 'pull_request' && github.event_name != 'merge_group') || github.head_ref == 'release/v5-prerelease' needs: [e2e-build] - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 40 # What .cargo/config.toml's [env] gives processes cargo launches; these # legs launch the test binaries themselves. @@ -2287,7 +2296,7 @@ jobs: # Only wait for the clippy preflight. if: github.event.pull_request.draft != true needs: clippy - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 30 steps: - name: Checkout @@ -2351,7 +2360,7 @@ jobs: name: hosted-e2e # may be a required check; do not rename if: github.event.pull_request.draft != true needs: clippy - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} permissions: contents: read timeout-minutes: 30 @@ -2556,7 +2565,7 @@ jobs: name: ci-ok # registered as a required check; do not rename if: always() needs: [clippy, node-addon, lint-ecosystems, release-readiness, test, test-release, coverage, docker-base, coverage-docker, coverage-merge, dispatch-tests, e2e-build, e2e-build-windows, e2e-build-macos, e2e, e2e-windows, e2e-full, e2e-docker, yarn-classic-matrix, yarn-berry-e2e, yarn-berry-full, cargo-vex-matrix, cargo-vex-matrix-windows, cargo-vex-matrix-full, cargo-old-toolchains, hosted-e2e, e2e-macos, yarn-berry-e2e-macos, cargo-vex-matrix-macos] - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 5 steps: - name: Check every needed job diff --git a/.github/workflows/composer-compatibility.yml b/.github/workflows/composer-compatibility.yml index 62a8d7fec..feb82a6e0 100644 --- a/.github/workflows/composer-compatibility.yml +++ b/.github/workflows/composer-compatibility.yml @@ -130,7 +130,7 @@ jobs: - {os: windows-latest, composer: '2.2.30', php: '8.3', sha256: 8c2b4478b64f8f7cdf1574838fdb0033b29049ca821dad452db7a3dcfcdbffc2} - {os: windows-latest, composer: '2.9.8', php: '8.4', sha256: 59b2c50e10cafa0d8efc19ede9a326d782f096c674a26baf98cf042ce23de890} - {os: windows-latest, composer: '2.10.3', php: '8.5', sha256: 7a2d379d5b8ffdaa028580ef26494c36d2feef4b178d3dd1473a4dbc5e17c8d6} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 60 steps: &native-steps - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -216,7 +216,7 @@ jobs: # all (#1210); 2.40.0 resolves the tap's formula aliases first. # Ubuntu and Windows keep the 2.10.3 / 8.5 cell. - {os: macos-latest, composer: '2.10.3', php: '8.4', sha256: 7a2d379d5b8ffdaa028580ef26494c36d2feef4b178d3dd1473a4dbc5e17c8d6} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 60 steps: *native-steps @@ -226,7 +226,7 @@ jobs: # Composer 1, so 1.10.28 is covered by the native legs only. name: docker composer ${{ matrix.composer }} if: github.event.pull_request.draft != true - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 35 strategy: fail-fast: false diff --git a/.github/workflows/go-compatibility.yml b/.github/workflows/go-compatibility.yml index 3066d36bd..d7f3333e2 100644 --- a/.github/workflows/go-compatibility.yml +++ b/.github/workflows/go-compatibility.yml @@ -78,7 +78,7 @@ jobs: matrix: os: [ubuntu-latest] go: ['1.18.10', '1.21.13', '1.24.13', '1.26.3'] - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 45 steps: &go-steps - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -118,6 +118,6 @@ jobs: # macOS-latest dyld refuses binaries without LC_UUID (Go < 1.24 # linkers; see ci.yml's vexctl step). go: ['1.24.13', '1.26.3'] - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 45 steps: *go-steps diff --git a/.github/workflows/gradle-compatibility.yml b/.github/workflows/gradle-compatibility.yml index b8196642c..38ab4faeb 100644 --- a/.github/workflows/gradle-compatibility.yml +++ b/.github/workflows/gradle-compatibility.yml @@ -110,7 +110,7 @@ jobs: # Whether this run needs the ubuntu `extras`: always off pull_request, and # on a PR only when it touches Gradle code. if: github.event.pull_request.draft != true - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 5 outputs: gradle_core: ${{ steps.diff.outputs.gradle_core }} @@ -158,7 +158,7 @@ jobs: - os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }} # On a PR only the ubuntu `extras` use the ubuntu build. - os: ${{ github.event_name == 'pull_request' && needs.changes.outputs.gradle_core != 'true' && 'ubuntu-latest' || '' }} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 60 env: CARGO_PROFILE_DEV_DEBUG: '0' @@ -235,7 +235,7 @@ jobs: - os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }} # ci.yml's `e2e` runs these ubuntu cells on every PR (#1177). - os: ${{ github.event_name == 'pull_request' && 'ubuntu-latest' || '' }} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 60 steps: &cell-steps - name: Checkout @@ -423,7 +423,7 @@ jobs: # Only the suite that owns those tests: e2e_vendor_jvm_build has none, # and every landed suite a cell runs must run a test. - {os: ubuntu-latest, gradle: '8.14.3', java: '21', mode: vendor, label: real-central, real_central: '1', suites: 'e2e_vendor_gradle_build', test_filter: 'gradle_vendor_511 gradle_vendor_487'} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 60 continue-on-error: ${{ matrix.record_only == 'true' }} steps: *cell-steps diff --git a/.github/workflows/npm-compatibility.yml b/.github/workflows/npm-compatibility.yml index 9ef2ae22c..f7ad21e3d 100644 --- a/.github/workflows/npm-compatibility.yml +++ b/.github/workflows/npm-compatibility.yml @@ -74,7 +74,7 @@ concurrency: jobs: build: if: github.event.pull_request.draft != true - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 25 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -103,7 +103,7 @@ jobs: install-proof: needs: build - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 25 strategy: fail-fast: false diff --git a/.github/workflows/pdm-compatibility.yml b/.github/workflows/pdm-compatibility.yml index 05619435d..9ab38d3b9 100644 --- a/.github/workflows/pdm-compatibility.yml +++ b/.github/workflows/pdm-compatibility.yml @@ -85,7 +85,7 @@ jobs: exclude: # macOS legs run on push to main (and nightly where scheduled), not per PR push. - os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 30 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -128,7 +128,7 @@ jobs: # every Windows cell skipped; backtest-pdm.py now fails such a cell. os: [ubuntu-latest] pdm: ['0.12.3', '1.15.5', '2.0.3', '2.1.5', '2.3.4', '2.6.1', '2.7.4', '2.8.2', '2.9.3', '2.10.4', '2.11.2', '2.17.3', '2.20.1', '2.22.4', '2.25.9', '2.29.2'] - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 45 steps: &native-steps - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -204,7 +204,7 @@ jobs: # The ends of the range and the 2.8 lock-format boundary. os: [macos-latest] pdm: ['0.12.3', '2.8.2', '2.29.2'] - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 45 steps: *native-steps @@ -225,7 +225,7 @@ jobs: - {os: macos-latest, pdm: '2.29.2'} # macOS legs run on push to main (and nightly where scheduled), not per PR push. - os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 30 steps: # The binaries resolve fixtures through the build job's checkout path, diff --git a/.github/workflows/pipenv-compatibility.yml b/.github/workflows/pipenv-compatibility.yml index 27e07c721..cea9c0e5e 100644 --- a/.github/workflows/pipenv-compatibility.yml +++ b/.github/workflows/pipenv-compatibility.yml @@ -86,7 +86,7 @@ jobs: - os: ubuntu-latest versions: 2022.12.19 2026.8.0 shapes: crlf marker-excluded extras category - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 60 steps: &matrix-steps - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -153,6 +153,6 @@ jobs: - os: macos-latest versions: 2018.11.26 2022.12.19 2023.12.1 2026.8.0 shapes: direct - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 60 steps: *matrix-steps diff --git a/.github/workflows/pnpm-compatibility.yml b/.github/workflows/pnpm-compatibility.yml index 271117272..06bec0175 100644 --- a/.github/workflows/pnpm-compatibility.yml +++ b/.github/workflows/pnpm-compatibility.yml @@ -60,7 +60,7 @@ concurrency: jobs: build: if: github.event.pull_request.draft != true - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 20 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -97,7 +97,7 @@ jobs: # failed the whole run. Every version still runs; a failure names it. name: install-proof (node ${{ matrix.node }}) needs: build - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 30 strategy: fail-fast: false diff --git a/.github/workflows/poetry-compatibility.yml b/.github/workflows/poetry-compatibility.yml index 00be6232b..e1f40c991 100644 --- a/.github/workflows/poetry-compatibility.yml +++ b/.github/workflows/poetry-compatibility.yml @@ -69,7 +69,7 @@ jobs: exclude: # macOS legs run on push to main (and nightly where scheduled), not per PR push. - os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 30 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -97,7 +97,7 @@ jobs: exclude: # macOS legs run on push to main (and nightly where scheduled), not per PR push. - os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 45 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 diff --git a/.github/workflows/sbt-compatibility.yml b/.github/workflows/sbt-compatibility.yml index 26cc6c768..80726c17a 100644 --- a/.github/workflows/sbt-compatibility.yml +++ b/.github/workflows/sbt-compatibility.yml @@ -115,7 +115,7 @@ jobs: if: github.event.pull_request.draft != true # Builds the sbt image once (base image first: Dockerfile.sbt is # `FROM socket-patch-test-base:latest`) and hands it to every leg. - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 45 steps: - name: Checkout @@ -168,7 +168,7 @@ jobs: # rust container. Absolute paths are kept (`tar -P`): # the test binaries carry their compile-time paths, and every leg checks # out to the same workspace path. - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 40 steps: - name: Checkout @@ -194,7 +194,7 @@ jobs: docker: name: sbt ${{ matrix.sbt }} / jdk ${{ matrix.jdk }} / ${{ matrix.group }} needs: [image, linux-bins] - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 45 strategy: fail-fast: false @@ -257,7 +257,7 @@ jobs: # vendored (the versions the image installs). name: ${{ matrix.group }} ${{ matrix.version }} needs: [image, linux-bins] - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 45 strategy: fail-fast: false @@ -308,7 +308,7 @@ jobs: # The warm-seed step boots sbt once so the tests share its caches. name: sbt 1.13.0 ${{ matrix.suite }} / ${{ matrix.os }} if: github.event.pull_request.draft != true - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 60 strategy: fail-fast: false diff --git a/.github/workflows/vlt-compatibility.yml b/.github/workflows/vlt-compatibility.yml index fcf9aa5ec..473d8f8f3 100644 --- a/.github/workflows/vlt-compatibility.yml +++ b/.github/workflows/vlt-compatibility.yml @@ -131,7 +131,7 @@ env: jobs: matrix-coverage: if: github.event.pull_request.draft != true - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 5 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -146,7 +146,7 @@ jobs: # matrix-coverage above still checks it, the rest is skipped. changes: if: github.event.pull_request.draft != true - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 5 outputs: matrix: ${{ steps.gate.outputs.matrix }} @@ -182,7 +182,7 @@ jobs: exclude: # macOS legs run on push to main (and nightly where scheduled), not per PR push. - os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 40 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -291,7 +291,7 @@ jobs: - {os: windows-latest, vlt: '1.2.0', linker: auto, suites: e2e_safety_vlt} - {os: windows-latest, vlt: '1.2.0', linker: hardlink, suites: e2e_safety_vlt} - {os: ubuntu-latest, vlt: '1.2.0', linker: hardlink, cache_root: /dev/shm/vlt-e2e-cache, suites: e2e_safety_vlt} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 45 # The capstones resolve fixtures through the build job's checkout path, # which is the same on every runner of one OS. @@ -405,14 +405,14 @@ jobs: - {os: macos-latest, vlt: '1.2.0'} - {os: macos-latest, vlt: '1.2.0', linker: auto, suites: e2e_safety_vlt} - {os: macos-latest, vlt: '1.2.0', linker: hardlink, suites: e2e_safety_vlt} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 45 steps: *install-proof-steps plan: needs: changes if: needs.changes.outputs.matrix == 'true' - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 5 outputs: native: ${{ steps.plan.outputs.native }} @@ -444,7 +444,7 @@ jobs: # Each job runs its cells against the public patch service. max-parallel: 6 matrix: ${{ fromJSON(needs.plan.outputs.native) }} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 45 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -508,7 +508,7 @@ jobs: lock-diff: needs: [changes, native] if: ${{ !cancelled() && needs.changes.outputs.matrix == 'true' }} - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 10 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -555,7 +555,7 @@ jobs: exclude: # macOS legs run on push to main (and nightly where scheduled), not per PR push. - os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }} - runs-on: ${{ matrix.os }} + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS != 'true' && (matrix.os == 'ubuntu-latest' && 'depot-ubuntu-24.04-4' || matrix.os == 'ubuntu-22.04' && 'depot-ubuntu-22.04-4') || matrix.os }} timeout-minutes: 45 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -624,7 +624,7 @@ jobs: # Advisory until the socket-patch release that adds vlt support (with the # forward-compatible ledger handling) is the latest published one. continue-on-error: true - runs-on: ubuntu-latest + runs-on: ${{ vars.DISABLE_DEPOT_RUNNERS == 'true' && 'ubuntu-latest' || 'depot-ubuntu-24.04-4' }} timeout-minutes: 20 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2