# Setting test expectation screenshots for Playwright name: Update Playwright Expectations on: pull_request: types: [labeled] issue_comment: types: [created] jobs: test: runs-on: ubuntu-latest if: > ( github.event_name == 'pull_request' && github.event.label.name == 'New Browser Test Expectations' ) || ( github.event.issue.pull_request && github.event_name == 'issue_comment' && ( github.event.comment.author_association == 'OWNER' || github.event.comment.author_association == 'MEMBER' || github.event.comment.author_association == 'COLLABORATOR' ) && startsWith(github.event.comment.body, '/update-playwright') ) steps: - name: Initial Checkout uses: actions/checkout@v5 - name: Pull Request Checkout (from comment) run: gh pr checkout ${{ github.event.issue.number }} if: github.event_name == 'issue_comment' env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Pull Request Checkout (from label) run: | git fetch origin ${{ github.head_ref }} git checkout ${{ github.head_ref }} if: github.event_name == 'pull_request' - name: Setup ComfyUI Server uses: ./.github/actions/setup-comfyui-server - name: Setup Frontend uses: ./.github/actions/setup-frontend - name: Setup Playwright uses: ./.github/actions/setup-playwright - name: Run Playwright tests and update snapshots id: playwright-tests run: pnpm exec playwright test --update-snapshots continue-on-error: true - uses: actions/upload-artifact@v4 if: always() with: name: playwright-report path: ./playwright-report/ retention-days: 30 - name: Debugging info run: | echo "PR: ${{ github.event.issue.number }}" git status - name: Commit updated expectations run: | git config --global user.name 'github-actions' git config --global user.email 'github-actions@github.com' git add browser_tests if git diff --cached --quiet; then echo "No changes to commit" else git commit -m "[automated] Update test expectations" if [ "${{ github.event_name }}" = "pull_request" ]; then git push origin HEAD:${{ github.head_ref }} else git push fi fi env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}