name: Playwright on: push: branches: - main pull_request: branches: - main permissions: contents: read concurrency: group: playwright-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: ${{ github.event_name == 'pull_request' }} jobs: e2e: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 24 cache: npm cache-dependency-path: package-lock.json - name: Install dependencies run: | npm ci --ignore-scripts npm rebuild node-pty - name: Install Playwright browsers run: npx playwright install --with-deps chromium - name: Run Playwright tests run: npm run test:e2e - name: Upload Playwright report if: ${{ !cancelled() }} uses: actions/upload-artifact@v4 with: name: playwright-report path: | playwright-report/ test-results/ retention-days: 7