name: E2E Tests on: push: branches: [main] pull_request: branches: [main] jobs: e2e: name: E2E Tests runs-on: ubuntu-latest timeout-minutes: 15 steps: - uses: actions/checkout@v4 - uses: ./.github/actions/setup - name: Cache Firebase emulators uses: actions/cache@v4 with: path: ~/.cache/firebase/emulators key: firebase-emulators-${{ hashFiles('firebase.json') }} restore-keys: firebase-emulators- - name: Cache Playwright browsers uses: actions/cache@v4 with: path: ~/.cache/ms-playwright key: playwright-${{ hashFiles('package.json') }} - name: Install Java (for Firebase emulators) uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: '21' # Required for firebase-tools@15+ - name: Install Playwright browsers run: npx playwright install chromium --with-deps # Docker load from cache is actually slower than pulling the images every time with supabase start - name: Start Supabase run: ./scripts/supabase_start.sh - name: Run E2E tests env: SKIP_DB_CLEANUP: true # Don't try to stop Docker in CI FIREBASE_TOKEN: 'dummy' # Suppresses auth warning # or run: | yarn test:e2e - name: Upload Playwright report if: always() uses: actions/upload-artifact@v4 with: name: playwright-report path: tests/reports/playwright-report/ retention-days: 7 - name: Upload test results if: always() uses: actions/upload-artifact@v4 with: name: test-results path: test-results/ retention-days: 7 if-no-files-found: ignore