mirror of
https://github.com/stablyai/orca.git
synced 2026-10-31 00:57:45 +00:00
Speed up import checks, localization extraction, and CI typechecking (#27727)
* Skip unnecessary compatibility-boundary parsing and benchmark it in CI * Use pinned preflight Bun for compatibility checks and localization extraction * Measure two concurrent Bun projects in full preflight and update its scope test
This commit is contained in:
@@ -290,7 +290,7 @@ jobs:
|
||||
PREFLIGHT_PRIOR_SUCCESS: ${{ job.status == 'success' }}
|
||||
run: |
|
||||
if [ "$PREFLIGHT_PHASE_SELECTED" != true ] || [ "$PREFLIGHT_PRIOR_SUCCESS" != true ]; then exit 0; fi
|
||||
pnpm run typecheck:ci
|
||||
pnpm run typecheck:ci --bun-concurrency=2 --bun-threads=2
|
||||
|
||||
- name: Check Zustand selector fan-out budget
|
||||
if: needs.code_paths.outputs.static_analysis == 'true'
|
||||
@@ -348,7 +348,7 @@ jobs:
|
||||
|
||||
- name: Check compatibility-folder imports
|
||||
if: needs.code_paths.outputs.static_analysis == 'true'
|
||||
run: pnpm run check:compat-boundary-imports
|
||||
run: bun config/scripts/check-compat-boundary-imports.mjs
|
||||
|
||||
- name: Check Node runtime pin
|
||||
if: needs.code_paths.outputs.static_analysis == 'true'
|
||||
@@ -356,6 +356,7 @@ jobs:
|
||||
|
||||
# Why: extraction writes sorted evidence to an isolated temporary path,
|
||||
# so feature PRs need one normalized AST pass rather than a three-OS matrix.
|
||||
# Use preflight's pinned Bun even when the optional local pin differs.
|
||||
- name: Verify localization extraction
|
||||
if: '!cancelled()'
|
||||
id: localization-extraction
|
||||
@@ -372,7 +373,7 @@ jobs:
|
||||
scope="$(node config/scripts/localization-extraction-change-scope.mjs "$RUNNER_TEMP/localization-changes")" && [ "$scope" = false ]; then
|
||||
echo "Localization extraction inputs are unchanged."
|
||||
else
|
||||
pnpm run verify:localization-extraction
|
||||
bun config/scripts/verify-localization-extraction.mjs
|
||||
fi
|
||||
|
||||
# Why both: the ratchet proves nothing reachable from the runtime imports electron,
|
||||
|
||||
@@ -58,3 +58,48 @@ jobs:
|
||||
name: preflight-static-analysis
|
||||
path: .build/preflight-benchmark/
|
||||
retention-days: 30
|
||||
compatibility-imports:
|
||||
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: 1.4.3
|
||||
- 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:
|
||||
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: 1.4.3
|
||||
- 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
|
||||
|
||||
Reference in New Issue
Block a user