Files
orca/.github/workflows/e2e.yml

51 lines
2.0 KiB
YAML

name: Captured OpenCode replay validation
on:
workflow_dispatch:
permissions:
contents: read
jobs:
golden:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
timeout-minutes: 25
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- name: Install Linux tools
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y build-essential python3 xvfb openbox x11-utils ripgrep openssh-client zsh
- uses: ./.github/actions/install-node-dependencies
with:
native-runtime: electron
- name: Build E2E app
env:
VITE_EXPOSE_STORE: "true"
run: |
pnpm run build:relay
pnpm exec electron-vite build --mode e2e
pnpm run build:web-from-renderer
- name: Run terminal rendering golden command
shell: bash
env:
SKIP_BUILD: '1'
ORCA_E2E_SSH_DOCKER: '1'
ORCA_E2E_FORWARD_APP_LOGS: '1'
PLAYWRIGHT_JSON_OUTPUT_FILE: test-results/opencode-capture-participation.json
run: |
if [ "$RUNNER_OS" = Linux ]; then
xvfb-run --auto-servernum bash .github/scripts/e2e-with-window-manager.sh pnpm exec playwright test --config tests/playwright.config.ts tests/e2e/terminal-foreground-redraw-freeze.spec.ts --project electron-headless --grep "captured OpenCode/OpenTUI" --repeat-each=3 --workers=1 --reporter=list,json --retries=0
else
pnpm exec playwright test --config tests/playwright.config.ts tests/e2e/terminal-foreground-redraw-freeze.spec.ts --project electron-headless --grep "captured OpenCode/OpenTUI" --repeat-each=3 --workers=1 --reporter=list,json --retries=0
fi
- uses: actions/upload-artifact@v7
if: always()
with:
name: opencode-capture-validation
path: test-results/
retention-days: 7
if-no-files-found: error