perf(ci): accelerate adhoc release builds and runner scheduling (#31297)

This commit is contained in:
Neil
2026-10-20 17:51:19 -07:00
committed by GitHub
parent ecee3468c9
commit c35ff3559d
14 changed files with 533 additions and 41 deletions
+17 -7
View File
@@ -27,6 +27,10 @@ on:
description: Also merge every lane's slot into the desktop orcad template artifact
type: boolean
default: false
fast_runners:
description: Use faster runners where the platform and architecture are available
type: boolean
default: false
# Release and dev builds qualify every platform for the template they ship.
workflow_call:
inputs:
@@ -38,6 +42,10 @@ on:
description: Upload each lane's release slot and merge them into the orcad-template artifact
type: boolean
default: false
fast_runners:
description: Use faster runners where the platform and architecture are available
type: boolean
default: false
# Requalify fresh builds daily; publish missing immutable Windows cache keys.
schedule:
- cron: '30 11 * * *'
@@ -55,7 +63,7 @@ jobs:
if: >-
github.event_name == 'push' ||
(github.event_name == 'pull_request' && github.event.pull_request.draft != true)
runs-on: 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 }}
@@ -142,7 +150,9 @@ 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"]') }}
runs-on: ${{ matrix.os }}
# Keep platform keys stable for slot names and Windows cross-compilation.
runs-on: >-
${{ 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","windows-2022":"blacksmith-8vcpu-windows-2025"}')[matrix.os] || matrix.os }}
timeout-minutes: 20
env:
ORCA_BACKGROUND_LAUNCH: '1'
@@ -314,7 +324,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: ubuntu-latest
runs-on: ${{ inputs.fast_runners && 'blacksmith-8vcpu-ubuntu-2404' || 'ubuntu-latest' }}
timeout-minutes: 15
steps:
- uses: actions/checkout@v6
@@ -354,7 +364,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: ${{ 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:
@@ -416,7 +426,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: ubuntu-22.04
runs-on: ${{ inputs.fast_runners && 'blacksmith-8vcpu-ubuntu-2204' || 'ubuntu-22.04' }}
timeout-minutes: 20
env:
ORCA_BACKGROUND_LAUNCH: '1'
@@ -475,7 +485,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-22.04, ubuntu-24.04-arm]
runs-on: ${{ 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'
@@ -532,7 +542,7 @@ jobs:
needs.persistence.result == 'success' && needs.mobile_web_bundle.result == 'success' &&
needs.linux_glibc_floor.result == 'success' &&
needs.linux_glibc217_compat.result == 'success' && needs.linux_musl.result == 'success' }}
runs-on: ubuntu-latest
runs-on: ${{ inputs.fast_runners && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-latest' }}
timeout-minutes: 30
steps:
- uses: actions/checkout@v6