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.
63 lines
2.1 KiB
YAML
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
|