mirror of
https://github.com/stablyai/orca.git
synced 2026-10-31 09:07:40 +00:00
* ci: narrow native, launcher and packaging cache keys and stop PR-local saves * ci: hash Rust crate sources, not build outputs, in launcher and hook keys * ci: fail closed on unlocked native packages and cover transitive key inputs * ci: resolve the Windows Rust cache scope with a script, not a nested local action --------- Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
116 lines
4.1 KiB
YAML
116 lines
4.1 KiB
YAML
name: Preflight comparison
|
|
on:
|
|
pull_request:
|
|
types: [opened, synchronize, reopened, ready_for_review, converted_to_draft]
|
|
paths:
|
|
- .github/workflows/preflight-benchmark.yml
|
|
- config/scripts/benchmark-preflight-*.mjs
|
|
- config/scripts/preflight-benchmark-command.mjs
|
|
workflow_dispatch:
|
|
permissions:
|
|
contents: read
|
|
concurrency:
|
|
group: preflight-comparison-${{ github.event.pull_request.number || github.ref }}
|
|
cancel-in-progress: true
|
|
env:
|
|
ORCA_BACKGROUND_LAUNCH: '1'
|
|
jobs:
|
|
compilers:
|
|
if: github.event_name != 'pull_request' || github.event.pull_request.draft != true
|
|
# Native compiler peaks can exhaust the standard ARM runner before samples are saved.
|
|
runs-on: blacksmith-8vcpu-ubuntu-2404-arm
|
|
timeout-minutes: 25
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
with:
|
|
persist-credentials: false
|
|
- uses: ./.github/actions/install-node-dependencies
|
|
with:
|
|
native-runtime: none
|
|
node-version: '24'
|
|
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
|
|
with:
|
|
bun-version-file: config/.bun-version
|
|
no-cache: true
|
|
- name: Compare native and Bun typechecking
|
|
run: node config/scripts/benchmark-preflight-compilers.mjs
|
|
- uses: actions/upload-artifact@v7
|
|
if: always()
|
|
with:
|
|
name: preflight-compilers
|
|
path: .build/preflight-benchmark/
|
|
retention-days: 30
|
|
static-analysis:
|
|
if: github.event_name != 'pull_request' || github.event.pull_request.draft != true
|
|
runs-on: ubuntu-24.04-arm
|
|
timeout-minutes: 25
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
with:
|
|
persist-credentials: false
|
|
- uses: ./.github/actions/install-node-dependencies
|
|
with:
|
|
native-runtime: none
|
|
node-version: '24'
|
|
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
|
|
with:
|
|
bun-version-file: config/.bun-version
|
|
no-cache: true
|
|
- name: Compare anti-slop patch and script runtimes
|
|
run: node config/scripts/benchmark-preflight-static-analysis.mjs
|
|
- uses: actions/upload-artifact@v7
|
|
if: always()
|
|
with:
|
|
name: preflight-static-analysis
|
|
path: .build/preflight-benchmark/
|
|
retention-days: 30
|
|
compatibility-imports:
|
|
if: github.event_name != 'pull_request' || github.event.pull_request.draft != true
|
|
runs-on: ubuntu-24.04-arm
|
|
timeout-minutes: 10
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
with:
|
|
persist-credentials: false
|
|
fetch-depth: 2
|
|
- uses: ./.github/actions/install-node-dependencies
|
|
with:
|
|
native-runtime: none
|
|
node-version: '24'
|
|
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
|
|
with:
|
|
bun-version-file: config/.bun-version
|
|
no-cache: true
|
|
- name: Compare compatibility-import scan and runtimes
|
|
run: node config/scripts/benchmark-preflight-compat-boundary.mjs
|
|
- uses: actions/upload-artifact@v7
|
|
if: always()
|
|
with:
|
|
name: preflight-compat-boundary
|
|
path: .build/preflight-benchmark/
|
|
retention-days: 30
|
|
localization-extraction:
|
|
if: github.event_name != 'pull_request' || github.event.pull_request.draft != true
|
|
runs-on: ubuntu-24.04-arm
|
|
timeout-minutes: 12
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
with:
|
|
persist-credentials: false
|
|
- uses: ./.github/actions/install-node-dependencies
|
|
with:
|
|
native-runtime: none
|
|
node-version: '24'
|
|
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
|
|
with:
|
|
bun-version-file: config/.bun-version
|
|
no-cache: true
|
|
- name: Compare localization extraction runtimes and complete catalogs
|
|
run: node config/scripts/benchmark-preflight-localization-extraction.mjs
|
|
- uses: actions/upload-artifact@v7
|
|
if: always()
|
|
with:
|
|
name: preflight-localization-extraction
|
|
path: .build/preflight-benchmark/
|
|
retention-days: 30
|