openreader/.github/workflows/playwright.yml
Richard R 5428a21b67 refactor(onboarding): modularize onboarding flow logic and improve testability
Extract onboarding flow step resolution and async runner logic into a
dedicated module for better separation of concerns and maintainability.
Refactor context/provider to use new helpers and simplify settings modal
control. Add unit tests for onboarding step resolution and async runner
coalescing. Update e2e helpers and selectors for onboarding modals.
Adjust environment file handling for CI and Docker contexts.

- Add .dockerignore for build hygiene
- Refactor onboarding context and modal logic
- Add src/lib/client/onboarding-flow.ts with core onboarding helpers
- Add onboarding-flow unit tests
- Update Playwright config and scripts for CI env loading
- Improve test selectors for claim modal
- Update .gitignore to exclude all .env* except .env.example

This change increases onboarding logic modularity and reliability, and improves CI/test environment handling.
2026-05-29 18:03:17 -06:00

63 lines
2.1 KiB
YAML

name: Playwright Tests
on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]
jobs:
e2e-testing:
timeout-minutes: 60
runs-on: ubuntu-latest
env:
USE_EMBEDDED_WEED_MINI: true
BASE_URL: http://127.0.0.1:3003
S3_ENDPOINT: http://127.0.0.1:8333
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: lts/*
package-manager-cache: false
- uses: pnpm/action-setup@v6
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y libreoffice-writer ffmpeg
- name: Install SeaweedFS weed binary
run: |
WEED_PATH=$(docker run --rm --entrypoint sh chrislusf/seaweedfs:4.18 -lc 'command -v weed')
CID=$(docker create chrislusf/seaweedfs:4.18)
docker cp "${CID}:${WEED_PATH}" ./weed
docker rm "${CID}"
sudo install -m 0755 ./weed /usr/local/bin/weed
rm -f ./weed
weed version
- name: Install NATS server binary
run: |
curl -fsSL -o /tmp/nats-server.tar.gz \
https://github.com/nats-io/nats-server/releases/download/v2.12.1/nats-server-v2.12.1-linux-amd64.tar.gz
tar -xzf /tmp/nats-server.tar.gz -C /tmp
sudo install -m 0755 /tmp/nats-server-v2.12.1-linux-amd64/nats-server /usr/local/bin/nats-server
nats-server -v
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build app and enforce bundle guard
run: |
pnpm build
pnpm build:bundle-guard
- name: Verify ffprobe
run: ffprobe -version
- name: Install Playwright Browsers
run: pnpm exec playwright install --with-deps
- name: Run Playwright tests
env:
API_BASE: https://api.deepinfra.com/v1/openai
API_KEY: ${{ secrets.DEEPINFRA_API_KEY }}
run: pnpm exec playwright test --reporter=list,github,html
- uses: actions/upload-artifact@v7
if: ${{ !cancelled() }}
with:
name: playwright-report
path: playwright-report/
retention-days: 30