diff --git a/.github/workflows/node-server-tests.yml b/.github/workflows/node-server-tests.yml index 6dfb5b76ee1..9f8623dcefb 100644 --- a/.github/workflows/node-server-tests.yml +++ b/.github/workflows/node-server-tests.yml @@ -63,7 +63,7 @@ jobs: if: >- github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.draft != true) - runs-on: ${{ (inputs.fast_runners || github.event_name == 'pull_request' || github.event_name == 'schedule') && 'blacksmith-2vcpu-ubuntu-2404' || 'ubuntu-latest' }} + runs-on: ${{ inputs.fast_runners && 'blacksmith-2vcpu-ubuntu-2404' || 'ubuntu-latest' }} timeout-minutes: 5 outputs: should_run: ${{ steps.scope.outputs.should_run || steps.graph.outputs.should_run }} @@ -153,10 +153,10 @@ jobs: fail-fast: false matrix: os: ${{ fromJSON(needs.changes.outputs.runners || '["ubuntu-22.04","ubuntu-24.04-arm","macos-15","macos-15-intel","windows-2022","windows-11-arm"]') }} - # Keep platform keys stable for slot names and Windows cross-compilation. Hosted Windows x64 is free and - # still finishes before the windows-11-arm and macos-15-intel lanes that set wall time. + # Keep platform keys stable for slot names and Windows cross-compilation. PR and scheduled runs use the + # free hosted label; only explicit fast_runners callers rent Blacksmith where it has the platform. runs-on: >- - ${{ (inputs.fast_runners || github.event_name == 'pull_request' || github.event_name == 'schedule') && fromJSON('{"ubuntu-22.04":"blacksmith-8vcpu-ubuntu-2204","ubuntu-24.04-arm":"blacksmith-8vcpu-ubuntu-2404-arm","macos-15":"blacksmith-6vcpu-macos-15","macos-15-intel":"macos-15-intel","windows-2022":"windows-2022","windows-11-arm":"windows-11-arm"}')[matrix.os] || matrix.os }} + ${{ inputs.fast_runners && fromJSON('{"ubuntu-22.04":"blacksmith-8vcpu-ubuntu-2204","ubuntu-24.04-arm":"blacksmith-8vcpu-ubuntu-2404-arm","macos-15":"blacksmith-6vcpu-macos-15"}')[matrix.os] || matrix.os }} timeout-minutes: 20 env: ORCA_BACKGROUND_LAUNCH: '1' @@ -337,7 +337,7 @@ jobs: ${{ !cancelled() && needs.changes.outputs.should_run != 'false' && needs.changes.outputs.qualification != 'false' && (github.event_name != 'pull_request' || github.event.pull_request.draft != true) }} - runs-on: ${{ (inputs.fast_runners || github.event_name == 'pull_request' || github.event_name == 'schedule') && 'blacksmith-8vcpu-ubuntu-2404' || 'ubuntu-latest' }} + runs-on: ${{ inputs.fast_runners && 'blacksmith-8vcpu-ubuntu-2404' || 'ubuntu-latest' }} timeout-minutes: 15 steps: - uses: actions/checkout@v6 @@ -380,7 +380,7 @@ jobs: image: quay.io/pypa/manylinux_2_28_x86_64@sha256:407f771c51a2c3e83ebe5a7970b4289ead3a6db21d9b9c089168775cad11d328 - os: ubuntu-24.04-arm image: quay.io/pypa/manylinux_2_28_aarch64@sha256:c22ffd129ac99a8a42d1f2c2f4e88a9089288dd9ee987a7092da1c7dc48f27a9 - runs-on: ${{ (inputs.fast_runners || github.event_name == 'pull_request' || github.event_name == 'schedule') && (matrix.os == 'ubuntu-22.04' && 'blacksmith-8vcpu-ubuntu-2204' || 'blacksmith-8vcpu-ubuntu-2404-arm') || matrix.os }} + runs-on: ${{ inputs.fast_runners && (matrix.os == 'ubuntu-22.04' && 'blacksmith-8vcpu-ubuntu-2204' || 'blacksmith-8vcpu-ubuntu-2404-arm') || matrix.os }} container: ${{ matrix.image }} timeout-minutes: 25 env: @@ -442,7 +442,7 @@ jobs: (github.event_name != 'pull_request' || github.event.pull_request.draft != true) && (github.event_name != 'pull_request' || inputs.build_template || inputs.ref != '' || needs.changes.outputs.native_compatibility != 'false') }} - runs-on: ${{ (inputs.fast_runners || github.event_name == 'pull_request' || github.event_name == 'schedule') && 'blacksmith-8vcpu-ubuntu-2204' || 'ubuntu-22.04' }} + runs-on: ${{ inputs.fast_runners && 'blacksmith-8vcpu-ubuntu-2204' || 'ubuntu-22.04' }} timeout-minutes: 20 env: ORCA_BACKGROUND_LAUNCH: '1' @@ -504,7 +504,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-22.04, ubuntu-24.04-arm] - runs-on: ${{ (inputs.fast_runners || github.event_name == 'pull_request' || github.event_name == 'schedule') && (matrix.os == 'ubuntu-22.04' && 'blacksmith-8vcpu-ubuntu-2204' || 'blacksmith-8vcpu-ubuntu-2404-arm') || matrix.os }} + runs-on: ${{ inputs.fast_runners && (matrix.os == 'ubuntu-22.04' && 'blacksmith-8vcpu-ubuntu-2204' || 'blacksmith-8vcpu-ubuntu-2404-arm') || matrix.os }} timeout-minutes: 20 env: ORCA_BACKGROUND_LAUNCH: '1' @@ -570,7 +570,7 @@ jobs: permissions: contents: read actions: read - runs-on: ${{ (inputs.fast_runners || github.event_name == 'pull_request' || github.event_name == 'schedule') && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-latest' }} + runs-on: ${{ inputs.fast_runners && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-latest' }} timeout-minutes: 30 steps: - uses: actions/checkout@v6 diff --git a/.github/workflows/qualified-orcad-template.yml b/.github/workflows/qualified-orcad-template.yml index 9e1ab339a14..6da722eee92 100644 --- a/.github/workflows/qualified-orcad-template.yml +++ b/.github/workflows/qualified-orcad-template.yml @@ -7,7 +7,7 @@ on: required: true type: string fast_runners: - description: Use Blacksmith; disable inside the SignPath signing workflow. + description: Qualify on Blacksmith; disable inside the SignPath signing workflow. type: boolean default: true @@ -19,7 +19,7 @@ env: jobs: cache: - runs-on: ${{ inputs.fast_runners && 'blacksmith-2vcpu-ubuntu-2404' || 'ubuntu-latest' }} + runs-on: ubuntu-latest timeout-minutes: 10 outputs: key: ${{ steps.identity.outputs.key }} @@ -91,7 +91,7 @@ jobs: save: needs: [cache, qualify] if: needs.qualify.result == 'success' - runs-on: ${{ inputs.fast_runners && 'blacksmith-2vcpu-ubuntu-2404' || 'ubuntu-latest' }} + runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/download-artifact@v8 diff --git a/config/scripts/node-server-fast-runners.test.mjs b/config/scripts/node-server-fast-runners.test.mjs index 42d2dd404ee..8e20b148705 100644 --- a/config/scripts/node-server-fast-runners.test.mjs +++ b/config/scripts/node-server-fast-runners.test.mjs @@ -35,7 +35,7 @@ it.each([ expect(runnerFor(workflow.jobs.persistence, os, true)).toBe(fastRunner) expect(runnerFor(workflow.jobs.persistence, os, undefined)).toBe(os) for (const event of ['pull_request', 'schedule']) { - expect(runnerFor(workflow.jobs.persistence, os, undefined, event)).toBe(fastRunner) + expect(runnerFor(workflow.jobs.persistence, os, undefined, event)).toBe(os) } }) @@ -48,6 +48,9 @@ it('retains both Linux architectures and the pinned libc qualification container expect(runnerFor(job, os, true)).toBe( `blacksmith-8vcpu-ubuntu-${os === 'ubuntu-22.04' ? '2204' : '2404-arm'}` ) + for (const event of ['pull_request', 'schedule']) { + expect(runnerFor(job, os, undefined, event)).toBe(os) + } } } const floor = workflow.jobs.linux_glibc_floor @@ -68,8 +71,8 @@ it.each([ ])('sizes %s while preserving the signing workflow override', (name, hostedRunner, fastRunner) => { expect(runnerFor(workflow.jobs[name], undefined, false)).toBe(hostedRunner) expect(runnerFor(workflow.jobs[name], undefined, true)).toBe(fastRunner) - expect(runnerFor(workflow.jobs[name], undefined, undefined, 'pull_request')).toBe(fastRunner) - expect(runnerFor(workflow.jobs[name], undefined, undefined, 'schedule')).toBe(fastRunner) + expect(runnerFor(workflow.jobs[name], undefined, undefined, 'pull_request')).toBe(hostedRunner) + expect(runnerFor(workflow.jobs[name], undefined, undefined, 'schedule')).toBe(hostedRunner) }) it('still builds and uploads cross-compiled Windows template addons on the x64 lane', () => { diff --git a/config/scripts/qualified-orcad-template.test.mjs b/config/scripts/qualified-orcad-template.test.mjs index 53caafbb417..c1dfd31cc6b 100644 --- a/config/scripts/qualified-orcad-template.test.mjs +++ b/config/scripts/qualified-orcad-template.test.mjs @@ -110,9 +110,7 @@ it('keeps SignPath on GitHub runners and isolates Blacksmith qualification cache "${{ inputs.fast_runners && 'fast' || 'github-hosted' }}" ) for (const name of ['cache', 'save']) { - expect(workflow.jobs[name]['runs-on']).toBe( - "${{ inputs.fast_runners && 'blacksmith-2vcpu-ubuntu-2404' || 'ubuntu-latest' }}" - ) + expect(workflow.jobs[name]['runs-on']).toBe('ubuntu-latest') } })