mirror of
https://github.com/stablyai/orca.git
synced 2026-10-30 16:47:34 +00:00
ci(node-server): run PR and scheduled qualification on free hosted runners (#34560)
Only explicit fast_runners callers (manual, hourly/daily/adhoc builds) keep Blacksmith; qualified-orcad-template's cache/save jobs always use ubuntu-latest. Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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', () => {
|
||||
|
||||
@@ -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')
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user