Migrate visual regression tests to quantecon-book-theme-fixtures #1136
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build Fixtures Site for Visual Regression Tests | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| # Visual regression tests run against the curated quantecon-book-theme-fixtures | |
| # site, pinned to a specific commit so the input doesn't move between theme | |
| # PRs. To bump the pin, update FIXTURES_SHA below. | |
| env: | |
| FIXTURES_REPO: QuantEcon/quantecon-book-theme-fixtures | |
| FIXTURES_SHA: d8ffc17c753ecf45fa25c6062827e1aa9de201b3 | |
| jobs: | |
| tests: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout theme | |
| uses: actions/checkout@v6 | |
| - name: Checkout fixtures | |
| uses: actions/checkout@v6 | |
| with: | |
| repository: ${{ env.FIXTURES_REPO }} | |
| ref: ${{ env.FIXTURES_SHA }} | |
| path: fixtures | |
| - name: Setup Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.13" | |
| cache: "pip" | |
| - name: Install fixtures build deps + this PR's theme | |
| run: | | |
| pip install -r fixtures/requirements.txt | |
| pip install . | |
| - name: Build fixtures site | |
| working-directory: fixtures | |
| run: jb build . --warningiserror | |
| # Visual Regression Testing | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Install Playwright | |
| run: | | |
| npm ci | |
| npx playwright install --with-deps chromium | |
| - name: Run Visual Regression Tests | |
| id: visual-tests | |
| run: npm run test:visual | |
| continue-on-error: true | |
| env: | |
| SITE_PATH: fixtures/_build/html | |
| - name: Upload Playwright Report | |
| uses: actions/upload-artifact@v7 | |
| if: always() | |
| with: | |
| name: playwright-report | |
| path: playwright-report/ | |
| retention-days: 30 | |
| - name: Upload Test Results (on failure) | |
| uses: actions/upload-artifact@v7 | |
| if: steps.visual-tests.outcome == 'failure' | |
| with: | |
| name: visual-test-diff | |
| path: test-results/ | |
| retention-days: 30 | |
| - name: Post Visual Test Results to PR | |
| uses: daun/playwright-report-summary@v3 | |
| if: github.event_name == 'pull_request' | |
| with: | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| report-file: playwright-report/results.json | |
| comment-title: '🎭 Visual Regression Test Results' | |
| - name: Fail if Visual Tests Failed | |
| if: steps.visual-tests.outcome == 'failure' | |
| run: exit 1 | |
| - name: Preview Deploy to Netlify | |
| uses: nwtgck/actions-netlify@v3.0 | |
| with: | |
| publish-dir: 'fixtures/_build/html/' | |
| production-branch: main | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| deploy-message: "Preview Deploy from GitHub Actions" | |
| env: | |
| NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} | |
| NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} |