mirror of
https://github.com/stablyai/orca.git
synced 2026-10-30 16:47:34 +00:00
* test: remove low-value inventories, passthroughs and redundant cases * style: format test suites after pruning redundant cases * test: remove obsolete workflow and flaky-test references * test: prune deleted builder test from Windows shim allowlist --------- Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
202 lines
9.3 KiB
YAML
202 lines
9.3 KiB
YAML
name: Computer-use e2e
|
||
|
||
on:
|
||
pull_request:
|
||
types: [opened, synchronize, reopened, ready_for_review, converted_to_draft]
|
||
paths:
|
||
- '.github/workflows/computer-e2e.yml'
|
||
- 'config/electron-builder.config.cjs'
|
||
- 'config/scripts/build-computer-macos.mjs'
|
||
- 'config/scripts/build-native-for-platform.mjs'
|
||
- 'config/scripts/build-native-for-platform.test.mjs'
|
||
- 'config/scripts/pnpm-cli-invocation.mjs'
|
||
- 'config/scripts/build-windows-cli-launcher.mjs'
|
||
- 'config/scripts/windows-rust-executable-build.mjs'
|
||
- 'config/scripts/build-windows-cli-launcher.test.mjs'
|
||
- 'config/scripts/macos-computer-helper-owner-loss-benchmark.mjs'
|
||
- 'config/scripts/macos-computer-helper-owner-loss-group-recovery.test.mjs'
|
||
- 'config/scripts/macos-computer-helper-owner-loss-metrics.mjs'
|
||
- 'config/scripts/macos-computer-helper-owner-loss-processes.mjs'
|
||
- 'config/scripts/macos-computer-helper-owner-loss-processes.test.mjs'
|
||
- 'config/scripts/macos-computer-helper-owner-loss-trial-cleanup.mjs'
|
||
- 'config/scripts/computer-use-smoke.mjs'
|
||
- 'config/scripts/computer-use-smoke.test.mjs'
|
||
- 'config/scripts/daemon-boot-smoke.mjs'
|
||
- 'config/scripts/daemon-endpoint-handover-smoke.mjs'
|
||
- 'config/scripts/windows-daemon-workspace-close-repro.mjs'
|
||
- 'config/scripts/verify-computer-native.mjs'
|
||
# Re-smoke daemon bundle/build changes under plain Node; v1.4.129-rc.1 shipped a module-load outage despite green CI.
|
||
- 'electron.vite.config.ts'
|
||
- 'config/build-plugins/**'
|
||
- 'src/main/daemon/**'
|
||
- '!src/main/daemon/**/*.test.ts'
|
||
- '!src/main/daemon/daemon-init-dependency-mocks.ts'
|
||
- '!src/main/daemon/daemon-init-test-harness.ts'
|
||
- '!src/main/daemon/daemon-init-fresh-import.ts'
|
||
- '!src/main/daemon/daemon-init-mock-types.ts'
|
||
- '!src/main/daemon/serialize-grid-roundtrip.ts'
|
||
- '!src/main/daemon/mock-descendant-sweep.ts'
|
||
- '!src/main/daemon/daemon-host-relocation.test-fixture.ts'
|
||
- '!src/main/daemon/daemon-endpoint-reachability-test-harness.ts'
|
||
- 'src/main/providers/local-pty-provider.ts'
|
||
- 'src/main/providers/windows-shell-args.ts'
|
||
- 'src/main/providers/windows-shell-preflight-runtime.windows.test.ts'
|
||
- 'native/computer-use-macos/**'
|
||
- 'native/computer-use-linux/**'
|
||
- 'native/computer-use-windows/**'
|
||
- 'native/windows-cli-launcher/**'
|
||
- 'skills/computer-use/SKILL.md'
|
||
- 'src/cli/**'
|
||
- 'src/main/computer/**'
|
||
- 'src/main/runtime/rpc/dispatcher.ts'
|
||
- 'src/main/runtime/rpc/errors.ts'
|
||
- 'src/main/runtime/rpc/methods/computer*.ts'
|
||
- 'src/shared/computer-use-*.ts'
|
||
- 'tests/e2e/computer-linux.e2e.ts'
|
||
- 'tests/e2e/computer-windows.e2e.ts'
|
||
- 'tests/e2e/computer-windows-store.e2e.ts'
|
||
- 'tests/e2e/helpers/computer-cli-driver.ts'
|
||
- 'tests/e2e/helpers/computer-driver.ts'
|
||
- 'tests/e2e/vitest.config.ts'
|
||
workflow_dispatch:
|
||
schedule:
|
||
- cron: '0 6 * * *'
|
||
|
||
concurrency:
|
||
group: computer-e2e-${{ github.event.pull_request.number || github.ref }}
|
||
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
||
|
||
permissions:
|
||
contents: read
|
||
|
||
jobs:
|
||
native-smoke:
|
||
if: github.event_name == 'pull_request' && github.event.pull_request.draft != true
|
||
permissions:
|
||
contents: read
|
||
strategy:
|
||
fail-fast: false
|
||
matrix:
|
||
os: [ubuntu-22.04, windows-latest]
|
||
runs-on: ${{ fromJSON('{"ubuntu-22.04":"blacksmith-4vcpu-ubuntu-2204"}')[matrix.os] || matrix.os }}
|
||
steps:
|
||
- uses: actions/checkout@v6
|
||
with:
|
||
persist-credentials: false
|
||
- if: runner.os == 'Linux'
|
||
run: sudo apt-get update && sudo apt-get install -y python3 python3-gi gir1.2-atspi-2.0 at-spi2-core
|
||
- uses: ./.github/actions/install-node-dependencies
|
||
with:
|
||
native-runtime: node
|
||
# Use shared Vitest config: bare invocation misses config/ and its timeout/Windows worker cap, breaking real csc.exe tests.
|
||
- run: >-
|
||
pnpm vitest run --config config/vitest.config.ts
|
||
config/scripts/macos-computer-helper-owner-loss-group-recovery.test.mjs
|
||
config/scripts/macos-computer-helper-owner-loss-processes.test.mjs
|
||
config/scripts/computer-use-smoke.test.mjs
|
||
src/main/computer/computer-provider-lifecycle.test.ts
|
||
src/main/computer/sidecar-client.test.ts
|
||
src/main/computer/macos-native-provider-client.test.ts
|
||
src/main/computer/macos-native-provider-socket.test.ts
|
||
src/main/computer/macos-computer-use-permissions.test.ts
|
||
src/main/computer/macos-computer-use-permission-status.test.ts
|
||
src/main/providers/windows-shell-preflight-runtime.windows.test.ts
|
||
src/main/computer/desktop-script-provider-client.test.ts
|
||
src/main/computer/desktop-script-provider-cache.test.ts
|
||
src/main/computer/desktop-script-provider-actions.test.ts
|
||
src/main/computer/desktop-script-provider-cache-lifecycle.test.ts
|
||
src/main/computer/desktop-script-provider-errors.test.ts
|
||
src/main/computer/desktop-script-provider-action-errors.test.ts
|
||
src/shared/computer-use-error-recovery.test.ts
|
||
src/shared/computer-use-key-spec.test.ts
|
||
src/cli/format.test.ts
|
||
src/cli/handlers/computer.test.ts
|
||
src/cli/handlers/computer-action-routing.test.ts
|
||
src/cli/handlers/computer-action-validation.test.ts
|
||
src/cli/handlers/computer-state-formatting.test.ts
|
||
src/cli/index.test.ts
|
||
src/main/runtime/rpc/dispatcher-computer-errors.test.ts
|
||
src/main/runtime/rpc/errors.test.ts
|
||
src/main/runtime/rpc/methods/computer.test.ts
|
||
src/main/runtime/rpc/methods/computer-actions.test.ts
|
||
src/cli/runtime/envelope-schema.test.ts
|
||
src/shared/remote-runtime-client.test.ts
|
||
- run: pnpm verify:computer-native
|
||
- run: pnpm build:cli
|
||
- run: pnpm run build:electron-vite:parallel
|
||
# Boot built daemon-entry under plain Node on Ubuntu/Windows, catching leaked electron requires like v1.4.129-rc.1.
|
||
- name: Daemon boot smoke
|
||
run: node config/scripts/daemon-boot-smoke.mjs
|
||
# Race real daemon processes on one endpoint; a loser must not unlink the replacement’s socket.
|
||
- name: Daemon endpoint handover smoke
|
||
run: node config/scripts/daemon-endpoint-handover-smoke.mjs
|
||
# Exercise workspace removal’s renderer teardown plus forced main sweep against real ConPTY.
|
||
- name: Windows daemon workspace-close repro
|
||
if: runner.os == 'Windows'
|
||
run: node config/scripts/windows-daemon-workspace-close-repro.mjs
|
||
# Hosted macOS runners cannot receive persistent Accessibility/Screen Recording
|
||
# grants. Keep the real native build/owner-loss checks on every trigger instead.
|
||
mac-native-owner-smoke:
|
||
if: github.event_name != 'pull_request' || github.event.pull_request.draft != true
|
||
runs-on: blacksmith-6vcpu-macos-15
|
||
permissions:
|
||
contents: read
|
||
steps:
|
||
- uses: actions/checkout@v6
|
||
with:
|
||
persist-credentials: false
|
||
- uses: ./.github/actions/install-node-dependencies
|
||
with:
|
||
native-runtime: electron
|
||
- name: Owner-loss benchmark process cleanup
|
||
run: >-
|
||
pnpm vitest run
|
||
config/scripts/macos-computer-helper-owner-loss-group-recovery.test.mjs
|
||
config/scripts/macos-computer-helper-owner-loss-processes.test.mjs
|
||
# Why: the parallel launcher's cancellation tests are darwin-only and no
|
||
# other PR job runs on macOS.
|
||
- name: Parallel native build launcher cancellation
|
||
run: >-
|
||
pnpm vitest run --config config/vitest.config.ts
|
||
config/scripts/build-native-for-platform.test.mjs
|
||
- name: Authenticated helper owner-loss smoke
|
||
run: pnpm bench:macos-computer-helper-owner-loss --expect reaped --trials 1
|
||
- name: Swift tests and signed universal helper verification
|
||
run: pnpm verify:computer-native
|
||
|
||
linux:
|
||
if: github.event_name != 'pull_request'
|
||
runs-on: blacksmith-4vcpu-ubuntu-2204
|
||
env:
|
||
ORCA_COMPUTER_E2E: '1'
|
||
ACCESSIBILITY_ENABLED: '1'
|
||
steps:
|
||
- uses: actions/checkout@v6
|
||
with:
|
||
persist-credentials: false
|
||
- run: sudo apt-get update && sudo apt-get install -y build-essential python3 python3-gi gir1.2-atspi-2.0 gedit at-spi2-core xvfb xclip xdotool
|
||
- uses: ./.github/actions/install-node-dependencies
|
||
with:
|
||
native-runtime: electron
|
||
- run: pnpm verify:computer-native
|
||
- run: pnpm build:cli
|
||
- run: pnpm run build:electron-vite:parallel
|
||
- run: xvfb-run --auto-servernum dbus-run-session -- pnpm test:e2e:computer --reporter=verbose tests/e2e/computer-linux.e2e.ts
|
||
|
||
windows:
|
||
if: github.event_name != 'pull_request'
|
||
runs-on: windows-latest
|
||
env:
|
||
ORCA_COMPUTER_E2E: '1'
|
||
steps:
|
||
- uses: actions/checkout@v6
|
||
with:
|
||
persist-credentials: false
|
||
- uses: ./.github/actions/install-node-dependencies
|
||
with:
|
||
native-runtime: electron
|
||
- run: pnpm verify:computer-native
|
||
- run: pnpm build:cli
|
||
- run: pnpm run build:electron-vite:parallel
|
||
- run: pnpm test:e2e:computer --reporter=verbose tests/e2e/computer-windows.e2e.ts tests/e2e/computer-windows-store.e2e.ts
|