mirror of
https://github.com/stablyai/orca.git
synced 2026-09-22 16:02:32 +00:00
* test: continuously exercise real WSL terminal launch and paste * test: establish live WSL reader before changing default shell * ci: pin WSL kernel installer and participation selectors * ci: route deleted WSL paths and record immutable run evidence * test: require exactly three WSL repetitions in lane contract
75 lines
2.2 KiB
YAML
75 lines
2.2 KiB
YAML
name: Windows WSL terminal E2E
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
ref:
|
|
description: Commit to validate
|
|
type: string
|
|
required: false
|
|
workflow_call:
|
|
inputs:
|
|
ref:
|
|
type: string
|
|
required: false
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
concurrency:
|
|
group: windows-wsl-e2e-${{ github.event.pull_request.number || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
wsl-terminal:
|
|
runs-on: windows-2022
|
|
timeout-minutes: 30
|
|
env:
|
|
NODE_OPTIONS: --max-old-space-size=4096
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
with:
|
|
ref: ${{ inputs.ref || github.sha }}
|
|
persist-credentials: false
|
|
- uses: ./.github/actions/setup-wsl-test-runtime
|
|
- uses: ./.github/actions/install-node-dependencies
|
|
with:
|
|
native-runtime: electron
|
|
- name: Build relay and Electron
|
|
run: |
|
|
pnpm run build:relay
|
|
if ($LASTEXITCODE -ne 0) { throw 'Relay build failed' }
|
|
pnpm exec electron-vite build --mode e2e
|
|
if ($LASTEXITCODE -ne 0) { throw 'Electron build failed' }
|
|
- name: Exercise real WSL launch and paste
|
|
env:
|
|
SKIP_BUILD: '1'
|
|
ORCA_E2E_FORWARD_APP_LOGS: '1'
|
|
PLAYWRIGHT_JSON_OUTPUT_FILE: test-results/wsl-results.json
|
|
run: >-
|
|
pnpm exec playwright test
|
|
tests/e2e/golden-tab-bar-agent-launch.spec.ts
|
|
tests/e2e/terminal-windows-shell-paste-ownership.spec.ts
|
|
--config tests/playwright.config.ts
|
|
--project=electron-headless
|
|
--grep "WSL"
|
|
--repeat-each=3
|
|
--workers=1
|
|
--reporter=list,json
|
|
- name: Require all nine WSL executions
|
|
if: always()
|
|
run: node config/scripts/verify-wsl-e2e-participation.mjs test-results/wsl-results.json
|
|
- name: Upload WSL participation report
|
|
uses: actions/upload-artifact@v7
|
|
if: always()
|
|
with:
|
|
name: windows-wsl-participation-report
|
|
path: test-results/wsl-results.json
|
|
retention-days: 3
|
|
- uses: actions/upload-artifact@v7
|
|
if: failure()
|
|
with:
|
|
name: windows-wsl-terminal-traces
|
|
path: test-results/
|
|
retention-days: 7
|