mirror of
https://github.com/stablyai/orca.git
synced 2026-10-30 16:47:34 +00:00
ci: retire completed relocation and pnpm cache experiments (#31843)
This commit is contained in:
@@ -46,7 +46,7 @@ outputs:
|
||||
description: The small pnpm-owned verification record, without registry metadata.
|
||||
value: ${{ steps.verification-cache.outputs.path }}
|
||||
verification-cache-key:
|
||||
description: Exact verification record key, also used by the isolated PR benchmark.
|
||||
description: Exact verification record cache key.
|
||||
value: ${{ steps.verification-cache.outputs.key }}
|
||||
node-version:
|
||||
description: Resolved Node.js version used for the install.
|
||||
|
||||
@@ -39,7 +39,6 @@ jobs:
|
||||
['release-ref-validation', 'release-ref-validation.yml'],
|
||||
['docs-pr', 'docs.yml'],
|
||||
['cloud-verify-refs/pull', 'cloud-verify.yml', '/merge'],
|
||||
['pnpm-verification-pilot', 'ci-pnpm-verification-pilot.yml'],
|
||||
['win-orcad-serve-switch-e2e', 'win-orcad-serve-switch-e2e.yml'],
|
||||
['pi-provider-runtime', 'pi-provider-runtime.yml'],
|
||||
['coding-plan-contract', 'zcode-credential-contract.yml', '-credentials'],
|
||||
|
||||
@@ -1,67 +0,0 @@
|
||||
name: pnpm verification cache pilot
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, synchronize, reopened, ready_for_review, converted_to_draft]
|
||||
paths: ['.github/workflows/ci-pnpm-verification-pilot.yml']
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: pnpm-verification-pilot-${{ github.event.pull_request.number || github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
ORCA_BACKGROUND_LAUNCH: '1'
|
||||
|
||||
jobs:
|
||||
seed:
|
||||
if: github.event_name != 'pull_request' || github.event.pull_request.draft != true
|
||||
strategy:
|
||||
matrix:
|
||||
runner: [ubuntu-latest, ubuntu-24.04-arm]
|
||||
runs-on: ${{ matrix.runner }}
|
||||
timeout-minutes: 15
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: ./.github/actions/install-node-dependencies
|
||||
id: deps
|
||||
# PR caches are scoped to the PR merge ref; main never restores them.
|
||||
- uses: actions/cache/save@v5
|
||||
if: steps.deps.outputs.verification-cache-hit != 'true'
|
||||
with:
|
||||
path: ${{ steps.deps.outputs.verification-cache-path }}
|
||||
key: ${{ steps.deps.outputs.verification-cache-key }}
|
||||
|
||||
measure:
|
||||
needs: seed
|
||||
name: measure ${{ matrix.runner }} sample ${{ matrix.sample }} cache ${{ matrix.cache }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
max-parallel: 4
|
||||
matrix:
|
||||
runner: [ubuntu-latest, ubuntu-24.04-arm]
|
||||
sample: [1, 2, 3]
|
||||
cache: ['false', 'true']
|
||||
runs-on: ${{ matrix.runner }}
|
||||
timeout-minutes: 15
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: ./.github/actions/install-node-dependencies
|
||||
id: deps
|
||||
with:
|
||||
cache-pnpm-verification: ${{ matrix.cache }}
|
||||
- name: Validate treatment and frozen install
|
||||
env:
|
||||
CACHE_ENABLED: ${{ matrix.cache }}
|
||||
CACHE_HIT: ${{ steps.deps.outputs.verification-cache-hit }}
|
||||
run: |
|
||||
if [ "$CACHE_ENABLED" = true ]; then test "$CACHE_HIT" = true; fi
|
||||
git diff --exit-code -- package.json pnpm-lock.yaml pnpm-workspace.yaml
|
||||
node -e "require.resolve('vitest'); require.resolve('electron')"
|
||||
@@ -1,119 +0,0 @@
|
||||
name: Daemon Relocation Spike
|
||||
|
||||
# Why: Phase 1 of the Windows update-survival work relocates the terminal
|
||||
# daemon's file closure out of the install dir so it survives an update. Before
|
||||
# implementing it in the app, this spike finds the MINIMAL set of packaged files
|
||||
# that a copied Orca.exe (run as node) needs to start the daemon and drive a
|
||||
# ConPTY session from a relocated directory, holding no install-dir file locks.
|
||||
# Runs from the feature branch via push (workflow_dispatch only works on the
|
||||
# default branch); main is never touched.
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- Jinwoo-H/windows-update-survival
|
||||
paths:
|
||||
- 'tests/tools/daemon-relocation-spike/**'
|
||||
- '.github/workflows/daemon-relocation-spike.yml'
|
||||
workflow_dispatch: {}
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: daemon-relocation-spike-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
spike:
|
||||
name: relocation file-set spike
|
||||
runs-on: windows-2022
|
||||
timeout-minutes: 40
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
# This job only reads the repo to build/run the spike; it never pushes.
|
||||
persist-credentials: false
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version-file: package.json
|
||||
check-latest: true
|
||||
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/setup@v2
|
||||
with:
|
||||
install: false
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install --frozen-lockfile
|
||||
|
||||
# Why: cache the unpacked build keyed on the inputs that affect it, so
|
||||
# spike-script-only edits skip the ~15 min electron-builder build.
|
||||
- name: Cache unpacked build
|
||||
id: cache-unpacked
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: dist/win-unpacked
|
||||
# mobile/ is in the key because beforePack requires out/mobile-web, whose bytes are the
|
||||
# page built from the mobile install and the page trees below; a mobile-only change must
|
||||
# miss this cache, not reuse a stale installer. config/** already covers the builder, the
|
||||
# verifier and the manifest writer.
|
||||
key: >-
|
||||
win-unpacked-${{ hashFiles(
|
||||
'src/**',
|
||||
'config/**',
|
||||
'package.json',
|
||||
'pnpm-lock.yaml',
|
||||
'mobile/package.json',
|
||||
'mobile/pnpm-lock.yaml',
|
||||
'mobile/app/**',
|
||||
'mobile/src/**',
|
||||
'mobile/web-entry/**'
|
||||
) }}
|
||||
|
||||
# Why here: electron-builder's beforePack requires out/mobile-web, and the bundle
|
||||
# build resolves React Native and Expo from mobile/node_modules. Gated with the
|
||||
# build it feeds, so a cache hit does not pay for an install nothing consumes.
|
||||
- uses: ./.github/actions/install-mobile-dependencies
|
||||
if: steps.cache-unpacked.outputs.cache-hit != 'true'
|
||||
|
||||
- name: Build unpacked app
|
||||
if: steps.cache-unpacked.outputs.cache-hit != 'true'
|
||||
run: pnpm run build:unpack
|
||||
|
||||
- name: Run relocation spike (all tiers)
|
||||
shell: pwsh
|
||||
run: |
|
||||
New-Item -ItemType Directory -Force artifacts | Out-Null
|
||||
$log = "artifacts/spike-output.log"
|
||||
$tiers = @('full', 'no-gpu', 'minimal')
|
||||
$any = $false
|
||||
foreach ($tier in $tiers) {
|
||||
"===== TIER: $tier =====" | Tee-Object -FilePath $log -Append
|
||||
$work = Join-Path $env:RUNNER_TEMP "spike-$tier"
|
||||
# --keep-work-dir so the per-tier daemon stdout/stderr logs survive
|
||||
# for the artifact upload (the spike otherwise removes work-dir),
|
||||
# which is what diagnoses a tier that fails to reach ready.
|
||||
node tests/tools/daemon-relocation-spike/spike.mjs `
|
||||
--app-dir dist/win-unpacked `
|
||||
--work-dir "$work" `
|
||||
--tier $tier `
|
||||
--keep-work-dir 2>&1 | Tee-Object -FilePath $log -Append
|
||||
if ($LASTEXITCODE -eq 0) { $any = $true }
|
||||
}
|
||||
if (-not $any) { throw "No tier passed the relocation spike" }
|
||||
|
||||
- name: Upload spike output
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: daemon-relocation-spike-output
|
||||
path: |
|
||||
artifacts/spike-output.log
|
||||
${{ runner.temp }}/spike-*/**/*.log
|
||||
retention-days: 7
|
||||
if-no-files-found: warn
|
||||
@@ -92,7 +92,6 @@ it('looks up exact PR groups without branch or head-SHA inference', async () =>
|
||||
'release-ref-validation-123',
|
||||
'docs-pr-123',
|
||||
'cloud-verify-refs/pull/123/merge',
|
||||
'pnpm-verification-pilot-123',
|
||||
'win-orcad-serve-switch-e2e-123',
|
||||
'pi-provider-runtime-123',
|
||||
'coding-plan-contract-123-credentials',
|
||||
|
||||
Reference in New Issue
Block a user