name: Deploy to GitHub Pages on: workflow_dispatch: workflow_call: jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Use Node.js uses: actions/setup-node@v4 with: node-version: 18.x cache: 'npm' - run: npm ci - run: npm run build - run: npm test - name: Get Playwright version id: playwright-version run: echo "version=$(node -p "require('@playwright/test/package.json').version")" >> $GITHUB_OUTPUT - name: Cache Playwright Browsers id: cache-playwright uses: actions/cache@v4 with: path: ~/.cache/ms-playwright key: playwright-${{ runner.os }}-${{ steps.playwright-version.outputs.version }} - name: Install Playwright System Dependencies run: npx playwright install-deps chromium - name: Install Playwright Browsers (If Not Cached) if: steps.cache-playwright.outputs.cache-hit != 'true' run: npx playwright install chromium - name: Run E2E Tests run: npm run test:e2e - name: Upload Playwright report if: always() uses: actions/upload-artifact@v4 with: name: playwright-report-gh-pages path: playwright-report/ retention-days: 30 - name: Deploy run: | git remote set-url origin https://git:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git npm run deploy -- -u "github-actions-bot " env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}