Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 67 additions & 0 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: E2E Tests

on:
pull_request:
paths:
- 'packages/web/**'
- 'packages/api-server/**'
- '.github/workflows/e2e.yml'
push:
branches: [dev]

concurrency:
group: e2e-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
playwright:
runs-on: ubuntu-latest
timeout-minutes: 20
env:
NEXT_PUBLIC_DATABASE_API_URL: ${{ secrets.E2E_DATABASE_API_URL }}
NEXT_PUBLIC_DATABASE_ANON_KEY: ${{ secrets.E2E_DATABASE_ANON_KEY }}
DATABASE_SERVICE_ROLE_KEY: ${{ secrets.E2E_DATABASE_SERVICE_ROLE_KEY }}
TEST_USER_EMAIL: ${{ secrets.E2E_TEST_USER_EMAIL }}
TEST_USER_PASSWORD: ${{ secrets.E2E_TEST_USER_PASSWORD }}
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Bun
uses: oven-sh/setup-bun@v1
with:
bun-version: latest

- name: Validate E2E secrets
run: |
: "${NEXT_PUBLIC_DATABASE_API_URL:?Missing E2E_DATABASE_API_URL secret}"
: "${NEXT_PUBLIC_DATABASE_ANON_KEY:?Missing E2E_DATABASE_ANON_KEY secret}"
: "${DATABASE_SERVICE_ROLE_KEY:?Missing E2E_DATABASE_SERVICE_ROLE_KEY secret}"
: "${TEST_USER_EMAIL:?Missing E2E_TEST_USER_EMAIL secret}"
: "${TEST_USER_PASSWORD:?Missing E2E_TEST_USER_PASSWORD secret}"

- name: Install dependencies
run: bun install --frozen-lockfile

- name: Generate API client
working-directory: packages/web
run: bun run generate:api

- name: Install Playwright browsers
working-directory: packages/web
run: bunx playwright install --with-deps chromium

- name: Run Playwright tests
working-directory: packages/web
run: bunx playwright test

- name: Upload test-results on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: test-results-${{ github.run_id }}
path: packages/web/test-results/
retention-days: 7
Loading