Skip to content

Migrate visual regression tests to quantecon-book-theme-fixtures #1136

Migrate visual regression tests to quantecon-book-theme-fixtures

Migrate visual regression tests to quantecon-book-theme-fixtures #1136

Workflow file for this run

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 }}