name: E2E Tests on: push: branches: [main] pull_request: branches: [main] workflow_dispatch: jobs: e2e: runs-on: local-ubuntu-latest timeout-minutes: 15 steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '22' cache: 'npm' - name: Install dependencies run: npm ci - name: Configure RBAC for Polaris dashboard proxy access run: kubectl apply -f deployment/polaris-rbac.yaml - name: Verify Polaris dashboard is reachable run: | kubectl wait --for=condition=ready pod -l app.kubernetes.io/name=polaris -n polaris --timeout=120s kubectl get svc polaris-dashboard -n polaris - name: Install Playwright browsers run: npx playwright install --with-deps chromium - name: Run E2E tests run: npm run e2e env: HEADLAMP_URL: ${{ secrets.HEADLAMP_URL || 'http://headlamp.kube-system.svc.cluster.local' }} HEADLAMP_TOKEN: ${{ secrets.HEADLAMP_TOKEN }} AUTHENTIK_USERNAME: ${{ secrets.AUTHENTIK_USERNAME }} AUTHENTIK_PASSWORD: ${{ secrets.AUTHENTIK_PASSWORD }} - name: Upload Playwright report uses: actions/upload-artifact@v4 if: failure() with: name: playwright-report path: playwright-report/ retention-days: 7 - name: Upload test results uses: actions/upload-artifact@v4 if: failure() with: name: test-results path: test-results/ retention-days: 7