chore(deps)(deps-dev): bump @types/node from 24.12.2 to 25.5.2 in /e2e #35
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: E2E Tests | |
| on: | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - 'frontend/**' | |
| - 'app/**' | |
| - 'e2e/**' | |
| - '.github/workflows/e2e-tests.yml' | |
| push: | |
| branches: [main] | |
| paths: | |
| - 'frontend/**' | |
| - 'app/**' | |
| - 'e2e/**' | |
| - '.github/workflows/e2e-tests.yml' | |
| workflow_dispatch: | |
| schedule: | |
| # Run nightly at 3 AM UTC for full suite | |
| - cron: '0 3 * * *' | |
| permissions: | |
| contents: read | |
| actions: write | |
| jobs: | |
| # Quick critical tests on PRs | |
| critical-tests: | |
| name: Critical E2E Tests | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| if: github.event_name == 'pull_request' | |
| services: | |
| postgres: | |
| image: postgres:16 | |
| env: | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: postgres | |
| POSTGRES_DB: transcripts | |
| ports: | |
| - 5434:5432 | |
| options: >- | |
| --health-cmd pg_isready | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: 'npm' | |
| cache-dependency-path: | | |
| frontend/package-lock.json | |
| e2e/package-lock.json | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| cache: 'pip' | |
| - name: Install Python dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements-dev.txt | |
| pip install -r requirements.txt | |
| - name: Apply database schema | |
| env: | |
| DATABASE_URL: postgresql://postgres:postgres@localhost:5434/transcripts | |
| run: | | |
| PGPASSWORD=postgres psql -h localhost -U postgres -p 5434 -d transcripts -f sql/schema.sql | |
| - name: Install frontend dependencies | |
| run: | | |
| cd frontend | |
| npm ci | |
| - name: Install E2E dependencies | |
| run: | | |
| cd e2e | |
| npm ci | |
| npx playwright install --with-deps chromium | |
| - name: Build frontend | |
| run: | | |
| cd frontend | |
| npm run build | |
| - name: Start backend API | |
| env: | |
| DATABASE_URL: postgresql+psycopg://postgres:postgres@localhost:5434/transcripts | |
| SESSION_SECRET: test-secret-key-for-ci-only | |
| FRONTEND_ORIGIN: http://localhost:5173 | |
| LOG_LEVEL: INFO | |
| run: | | |
| nohup uvicorn app.main:app --host 0.0.0.0 --port 8000 > api.log 2>&1 & | |
| echo $! > api.pid | |
| sleep 5 | |
| # Wait for API to be ready | |
| for i in {1..30}; do | |
| if curl -f http://localhost:8000/health 2>/dev/null; then | |
| echo "API is ready" | |
| break | |
| fi | |
| echo "Waiting for API..." | |
| sleep 2 | |
| done | |
| - name: Start frontend dev server | |
| run: | | |
| cd frontend | |
| nohup npm run dev > ../frontend.log 2>&1 & | |
| echo $! > ../frontend.pid | |
| sleep 5 | |
| # Wait for frontend to be ready | |
| for i in {1..30}; do | |
| if curl -f http://localhost:5173 2>/dev/null; then | |
| echo "Frontend is ready" | |
| break | |
| fi | |
| echo "Waiting for frontend..." | |
| sleep 2 | |
| done | |
| - name: Seed test database | |
| env: | |
| DATABASE_URL: postgresql://postgres:postgres@localhost:5434/transcripts | |
| run: | | |
| cd e2e | |
| npm run seed-db | |
| - name: Run critical E2E tests | |
| env: | |
| PLAYWRIGHT_BASE_URL: http://localhost:5173 | |
| run: | | |
| cd e2e | |
| npx playwright test tests/auth.spec.ts tests/job-creation.spec.ts tests/search.spec.ts --project=chromium --reporter=list,html | |
| - name: Upload test artifacts | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: playwright-report-critical | |
| path: | | |
| e2e/playwright-report/ | |
| e2e/test-results/ | |
| retention-days: 7 | |
| - name: Upload logs on failure | |
| if: failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: service-logs-critical | |
| path: | | |
| api.log | |
| frontend.log | |
| retention-days: 7 | |
| - name: Cleanup | |
| if: always() | |
| run: | | |
| [ -f api.pid ] && kill $(cat api.pid) || true | |
| [ -f frontend.pid ] && kill $(cat frontend.pid) || true | |
| # Full test suite on main branch and nightly | |
| full-suite: | |
| name: Full E2E Test Suite | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 45 | |
| if: github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| browser: [chromium, firefox, webkit] | |
| services: | |
| postgres: | |
| image: postgres:16 | |
| env: | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: postgres | |
| POSTGRES_DB: transcripts | |
| ports: | |
| - 5434:5432 | |
| options: >- | |
| --health-cmd pg_isready | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: 'npm' | |
| cache-dependency-path: | | |
| frontend/package-lock.json | |
| e2e/package-lock.json | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| cache: 'pip' | |
| - name: Install Python dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements-dev.txt | |
| pip install -r requirements.txt | |
| - name: Apply database schema | |
| env: | |
| DATABASE_URL: postgresql://postgres:postgres@localhost:5434/transcripts | |
| run: | | |
| PGPASSWORD=postgres psql -h localhost -U postgres -p 5434 -d transcripts -f sql/schema.sql | |
| - name: Install frontend dependencies | |
| run: | | |
| cd frontend | |
| npm ci | |
| - name: Install E2E dependencies | |
| run: | | |
| cd e2e | |
| npm ci | |
| npx playwright install --with-deps ${{ matrix.browser }} | |
| - name: Build frontend | |
| run: | | |
| cd frontend | |
| npm run build | |
| - name: Start backend API | |
| env: | |
| DATABASE_URL: postgresql+psycopg://postgres:postgres@localhost:5434/transcripts | |
| SESSION_SECRET: test-secret-key-for-ci-only | |
| FRONTEND_ORIGIN: http://localhost:5173 | |
| LOG_LEVEL: INFO | |
| run: | | |
| nohup uvicorn app.main:app --host 0.0.0.0 --port 8000 > api.log 2>&1 & | |
| echo $! > api.pid | |
| sleep 5 | |
| for i in {1..30}; do | |
| if curl -f http://localhost:8000/health 2>/dev/null; then | |
| echo "API is ready" | |
| break | |
| fi | |
| echo "Waiting for API..." | |
| sleep 2 | |
| done | |
| - name: Start frontend dev server | |
| run: | | |
| cd frontend | |
| nohup npm run dev > ../frontend.log 2>&1 & | |
| echo $! > ../frontend.pid | |
| sleep 5 | |
| for i in {1..30}; do | |
| if curl -f http://localhost:5173 2>/dev/null; then | |
| echo "Frontend is ready" | |
| break | |
| fi | |
| echo "Waiting for frontend..." | |
| sleep 2 | |
| done | |
| - name: Seed test database | |
| env: | |
| DATABASE_URL: postgresql://postgres:postgres@localhost:5434/transcripts | |
| run: | | |
| cd e2e | |
| npm run seed-db | |
| - name: Run E2E tests (${{ matrix.browser }}) | |
| env: | |
| PLAYWRIGHT_BASE_URL: http://localhost:5173 | |
| run: | | |
| cd e2e | |
| npx playwright test --project=${{ matrix.browser }} --reporter=list,html | |
| - name: Upload test artifacts | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: playwright-report-${{ matrix.browser }} | |
| path: | | |
| e2e/playwright-report/ | |
| e2e/test-results/ | |
| retention-days: 7 | |
| - name: Upload logs on failure | |
| if: failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: service-logs-${{ matrix.browser }} | |
| path: | | |
| api.log | |
| frontend.log | |
| retention-days: 7 | |
| - name: Cleanup | |
| if: always() | |
| run: | | |
| [ -f api.pid ] && kill $(cat api.pid) || true | |
| [ -f frontend.pid ] && kill $(cat frontend.pid) || true | |
| # Mobile tests | |
| mobile-tests: | |
| name: Mobile E2E Tests | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' | |
| services: | |
| postgres: | |
| image: postgres:16 | |
| env: | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: postgres | |
| POSTGRES_DB: transcripts | |
| ports: | |
| - 5434:5432 | |
| options: >- | |
| --health-cmd pg_isready | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: 'npm' | |
| cache-dependency-path: | | |
| frontend/package-lock.json | |
| e2e/package-lock.json | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| cache: 'pip' | |
| - name: Install Python dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements-dev.txt | |
| pip install -r requirements.txt | |
| - name: Apply database schema | |
| env: | |
| DATABASE_URL: postgresql://postgres:postgres@localhost:5434/transcripts | |
| run: | | |
| PGPASSWORD=postgres psql -h localhost -U postgres -p 5434 -d transcripts -f sql/schema.sql | |
| - name: Install frontend dependencies | |
| run: | | |
| cd frontend | |
| npm ci | |
| - name: Install E2E dependencies | |
| run: | | |
| cd e2e | |
| npm ci | |
| npx playwright install --with-deps chromium webkit | |
| - name: Build frontend | |
| run: | | |
| cd frontend | |
| npm run build | |
| - name: Start backend API | |
| env: | |
| DATABASE_URL: postgresql+psycopg://postgres:postgres@localhost:5434/transcripts | |
| SESSION_SECRET: test-secret-key-for-ci-only | |
| FRONTEND_ORIGIN: http://localhost:5173 | |
| LOG_LEVEL: INFO | |
| run: | | |
| nohup uvicorn app.main:app --host 0.0.0.0 --port 8000 > api.log 2>&1 & | |
| echo $! > api.pid | |
| sleep 5 | |
| for i in {1..30}; do | |
| if curl -f http://localhost:8000/health 2>/dev/null; then | |
| echo "API is ready" | |
| break | |
| fi | |
| echo "Waiting for API..." | |
| sleep 2 | |
| done | |
| - name: Start frontend dev server | |
| run: | | |
| cd frontend | |
| nohup npm run dev > ../frontend.log 2>&1 & | |
| echo $! > ../frontend.pid | |
| sleep 5 | |
| for i in {1..30}; do | |
| if curl -f http://localhost:5173 2>/dev/null; then | |
| echo "Frontend is ready" | |
| break | |
| fi | |
| echo "Waiting for frontend..." | |
| sleep 2 | |
| done | |
| - name: Seed test database | |
| env: | |
| DATABASE_URL: postgresql://postgres:postgres@localhost:5434/transcripts | |
| run: | | |
| cd e2e | |
| npm run seed-db | |
| - name: Run mobile E2E tests | |
| env: | |
| PLAYWRIGHT_BASE_URL: http://localhost:5173 | |
| run: | | |
| cd e2e | |
| npx playwright test --project='Mobile Chrome' --project='Mobile Safari' --reporter=list,html | |
| - name: Upload test artifacts | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: playwright-report-mobile | |
| path: | | |
| e2e/playwright-report/ | |
| e2e/test-results/ | |
| retention-days: 7 | |
| - name: Upload logs on failure | |
| if: failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: service-logs-mobile | |
| path: | | |
| api.log | |
| frontend.log | |
| retention-days: 7 | |
| - name: Cleanup | |
| if: always() | |
| run: | | |
| [ -f api.pid ] && kill $(cat api.pid) || true | |
| [ -f frontend.pid ] && kill $(cat frontend.pid) || true | |
| test-summary: | |
| name: E2E Test Summary | |
| runs-on: ubuntu-latest | |
| needs: [critical-tests] | |
| if: always() | |
| steps: | |
| - name: Generate summary | |
| run: | | |
| echo "# E2E Test Summary" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "✅ E2E tests completed" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "See individual job results above for details." >> $GITHUB_STEP_SUMMARY |