diff --git a/.github/workflows/mobile.yml b/.github/workflows/mobile.yml index 541ecef9227..63a5cb171b7 100644 --- a/.github/workflows/mobile.yml +++ b/.github/workflows/mobile.yml @@ -105,7 +105,7 @@ jobs: name: Mobile verify if: github.event_name == 'pull_request' && github.event.pull_request.draft != true # Use ARM for pure Vitest; no x86 native toolchain is needed and Gemfile.lock’s ruby platform supports frozen install. - runs-on: blacksmith-4vcpu-ubuntu-2404-arm + runs-on: ubuntu-24.04-arm env: # Freeze bundler to reject Gemfile drift before release jobs resolve different fastlane versions. @@ -240,7 +240,7 @@ jobs: native-fingerprint: name: Mobile native fingerprint if: github.event_name == 'pull_request' && github.event.pull_request.draft != true - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-24.04 timeout-minutes: 15 continue-on-error: true diff --git a/.github/workflows/pr-test-loc.yml b/.github/workflows/pr-test-loc.yml index da82b6c1d6a..43cd1bc6f5e 100644 --- a/.github/workflows/pr-test-loc.yml +++ b/.github/workflows/pr-test-loc.yml @@ -19,7 +19,7 @@ jobs: loc: name: test vs non-test LoC # API calls and a small Node script fit the free single-CPU container runner. - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-slim timeout-minutes: 2 steps: # Read file counts through API without checkout; execute only default-branch scripts because GITHUB_TOKEN has write scope. PR edits take effect after merge. diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index ca83f764ddd..aba4f3cc0f9 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -22,8 +22,8 @@ jobs: code_paths: if: github.event_name != 'pull_request' || github.event.pull_request.draft != true name: detect changes and check repository guards - # Start routing without waiting behind the GitHub-hosted test queue. - runs-on: blacksmith-2vcpu-ubuntu-2404 + # Hosted runners start faster than Blacksmith's (~5s vs ~13s) and this sparse checkout fits one vCPU. + runs-on: ubuntu-slim timeout-minutes: 5 permissions: contents: read @@ -579,7 +579,7 @@ jobs: needs.code_paths.result == 'success' && needs.code_paths.outputs.git_compatibility == 'true' && needs.preflight.result == 'success' - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: ubuntu-24.04 steps: - name: Checkout @@ -645,7 +645,7 @@ jobs: needs.code_paths.outputs.codex_index_heal_contract == 'true' && needs.preflight.result == 'success' # Why ARM: @openai/codex ships @openai/codex-linux-arm64. - runs-on: blacksmith-4vcpu-ubuntu-2404-arm + runs-on: ubuntu-24.04-arm env: CODEX_CLI_VERSION: '0.150.1' # Why a second pin: --no-daemon only exists from 0.156, and Orca's codex wrapper relies on it. @@ -740,7 +740,7 @@ jobs: needs.code_paths.outputs.xterm_patch_sync == 'true' && needs.preflight.result == 'success' # Use ARM for four-package pristine/patched rebuild byte comparison: output generated on Linux x64 reproduces on darwin-arm64. - runs-on: blacksmith-4vcpu-ubuntu-2404-arm + runs-on: ubuntu-24.04-arm steps: - name: Checkout @@ -772,7 +772,7 @@ jobs: needs.code_paths.outputs.shell_contracts == 'true' && needs.preflight.result == 'success' # Exercise Linux ARM with the standalone aarch64 release and Ubuntu's zsh. - runs-on: blacksmith-4vcpu-ubuntu-2404-arm + runs-on: ubuntu-24.04-arm # Bound stalled prerequisite downloads instead of waiting for GitHub's 6-hour default. timeout-minutes: 15 env: @@ -901,7 +901,7 @@ jobs: name: mobile web app bundle needs: [code_paths] if: needs.code_paths.outputs.mobile_web_app == 'true' - runs-on: blacksmith-8vcpu-ubuntu-2404 + runs-on: ubuntu-24.04 steps: - name: Checkout @@ -969,7 +969,7 @@ jobs: needs.code_paths.outputs.cross-version-wire == 'true' && needs.preflight.result == 'success' # Why ARM: source-only: tagged checkout plus in-process vitest, no docker or browser. - runs-on: blacksmith-4vcpu-ubuntu-2404-arm + runs-on: ubuntu-24.04-arm steps: # Fetch tags/full history for newest-release skew; shallow unit shards cannot supply it. @@ -1012,7 +1012,7 @@ jobs: needs.code_paths.outputs.managed_hook_node18 == 'true' && needs.preflight.result == 'success' # Retain the required check while sharing preflight's checkout and built packages. - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-slim timeout-minutes: 5 steps: @@ -1029,7 +1029,7 @@ jobs: name: package needs: [code_paths, preflight] if: needs.code_paths.outputs.package == 'true' - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: ubuntu-24.04 # Let the serial Docker gates reach their own deadlines and report cleanup failures. timeout-minutes: 90 @@ -1460,7 +1460,7 @@ jobs: !cancelled() && needs.code_paths.result == 'success' && needs.code_paths.outputs.dependency_isolation == 'true' - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: ubuntu-24.04 timeout-minutes: 30 env: ORCA_PNPM_FORCE_GLOBAL_VIRTUAL_STORE_IN_CI: '1' @@ -1527,8 +1527,7 @@ jobs: - package_windows - layout_oracle - dependency_isolation - # Report settled results without competing with the GitHub-hosted test queue. - runs-on: blacksmith-2vcpu-ubuntu-2204 + runs-on: ubuntu-slim timeout-minutes: 5 steps: diff --git a/.github/workflows/unit-plan.yml b/.github/workflows/unit-plan.yml index fb3836ac6ff..0080a184bfb 100644 --- a/.github/workflows/unit-plan.yml +++ b/.github/workflows/unit-plan.yml @@ -20,7 +20,7 @@ permissions: jobs: plan: - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-24.04 timeout-minutes: 5 outputs: shards: ${{ steps.plan.outputs.shards }} diff --git a/.github/workflows/unit-selection-evidence.yml b/.github/workflows/unit-selection-evidence.yml index e9e1104aad6..8f69d05dc2f 100644 --- a/.github/workflows/unit-selection-evidence.yml +++ b/.github/workflows/unit-selection-evidence.yml @@ -11,7 +11,7 @@ jobs: selection_evidence: if: ${{ !cancelled() }} continue-on-error: true - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-slim steps: - uses: actions/checkout@v6 with: diff --git a/config/scripts/ci-dependency-download-cache.test.mjs b/config/scripts/ci-dependency-download-cache.test.mjs index f745aa2bf60..fe7edadf006 100644 --- a/config/scripts/ci-dependency-download-cache.test.mjs +++ b/config/scripts/ci-dependency-download-cache.test.mjs @@ -490,7 +490,7 @@ describe('CI dependency download caches', () => { ) const linux = release.strategy.matrix.include.find((entry) => entry.platform === 'linux-x64') - expect([linux.os, 'blacksmith-4vcpu-ubuntu-2404']).toContain(packaging['runs-on']) + expect([linux.os, 'ubuntu-24.04']).toContain(packaging['runs-on']) expect(writer.if).toBe("matrix.platform == 'linux-x64' && github.ref == 'refs/heads/main'") expect(writer.uses).toBe('actions/cache@v5') expect(writer.with.path).toBe(consumer.with.path) diff --git a/config/scripts/pr-preflight-gates.test.mjs b/config/scripts/pr-preflight-gates.test.mjs index 3c4095bb60e..8634b541910 100644 --- a/config/scripts/pr-preflight-gates.test.mjs +++ b/config/scripts/pr-preflight-gates.test.mjs @@ -361,7 +361,7 @@ it('runs the unchanged Node 18 smoke after every Node 24 step and preserves its expect(joined, background.id).toBeLessThan(steps.indexOf(smoke)) } expect(receipt.name).toBe('managed hooks on Node 18') - expect(receipt['runs-on']).toBe('blacksmith-2vcpu-ubuntu-2404') + expect(receipt['runs-on']).toBe('ubuntu-slim') expect(receipt.steps).toHaveLength(1) expect(receipt.steps[0].uses).toBeUndefined() expect(receipt.steps[0].env.MANAGED_HOOK_NODE18).toBe( diff --git a/config/scripts/pr-test-loc-summary.test.mjs b/config/scripts/pr-test-loc-summary.test.mjs index ad68da65642..527b5016426 100644 --- a/config/scripts/pr-test-loc-summary.test.mjs +++ b/config/scripts/pr-test-loc-summary.test.mjs @@ -245,8 +245,8 @@ describe('PR test LoC summary', () => { expect(result.stderr).toContain('--from-pr') }) - it('is a no-checkout PR workflow on an ephemeral Blacksmith runner', () => { - expect(locJob['runs-on']).toBe('blacksmith-2vcpu-ubuntu-2404') + it('is a no-checkout PR workflow on the single-CPU hosted runner', () => { + expect(locJob['runs-on']).toBe('ubuntu-slim') expect(locJob.steps).toHaveLength(1) expect(locStep.run).toContain('gh api') expect(locStep.run).toContain('pr-test-loc-table.mjs')