name: CI on: pull_request: types: [labeled] concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: e2e: name: E2E Visual Regression Tests runs-on: ubuntu-latest timeout-minutes: 15 if: github.event.label.name == 'vrt' || contains(github.event.pull_request.labels.*.name, 'vrt') permissions: id-token: write contents: write steps: - name: Checkout code uses: actions/checkout@v5.0.0 with: fetch-depth: 0 persist-credentials: false - name: Setup Node & pnpm uses: ./.github/actions/setup-node - name: Install Playwright run: | sudo npx playwright install-deps pnpm exec playwright install - name: Set up Git env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | git config --local user.email "$(git --no-pager log --format=format:'%ae' -n 1)" git config --local user.name "$(git --no-pager log --format=format:'%an' -n 1)" git config --local url."https://oauth2:${GITHUB_TOKEN}@github.com/".insteadOf "https://github.com/" git pull --rebase origin ${{ github.head_ref }} - name: Build project run: pnpm build - name: Capture screenshots timeout-minutes: 3 run: | if [ -d "e2e/snapshots" ]; then rm -rf e2e/snapshots fi pnpm e2e env: MAX_CONCURRENCY: 10 - name: Commit screenshots run: | set -x git add e2e/snapshots git commit -m 'ci(snapshots): update screenshots' git push origin HEAD:${{ github.head_ref }}