-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* main: Add support for visual regression tests (#384)
- Loading branch information
Showing
175 changed files
with
1,253 additions
and
67 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
name: Visual acceptance tests | ||
on: [push, pull_request] | ||
|
||
# # Unkomment if you want a scheduled run | ||
# | ||
# on: | ||
# workflow_dispatch: | ||
# schedule: | ||
# - cron: '0 */12 * * *' | ||
|
||
env: | ||
node-version: 20.x | ||
|
||
jobs: | ||
visual: | ||
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name | ||
runs-on: ubuntu-latest | ||
env: | ||
CYPRESS_A11Y: true | ||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Use Node.js ${{ env.node-version }} | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: ${{ env.node-version }} | ||
|
||
- name: Enable corepack | ||
run: corepack enable | ||
|
||
- name: Get pnpm store directory | ||
shell: bash | ||
run: | | ||
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | ||
- uses: actions/cache@v4 | ||
name: Setup pnpm cache | ||
with: | ||
path: ${{ env.STORE_PATH }} | ||
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | ||
restore-keys: | | ||
${{ runner.os }}-pnpm-store- | ||
- name: Cache Cypress Binary | ||
id: cache-cypress-binary | ||
uses: actions/cache@v4 | ||
with: | ||
path: ~/.cache/Cypress | ||
key: binary-${{ env.node-version }}-${{ hashFiles('pnpm-lock.yaml') }} | ||
|
||
- name: Install dependencies | ||
run: make install | ||
|
||
- name: Install Cypress if not in cache | ||
if: steps.cache-cypress-binary.outputs.cache-hit != 'true' | ||
working-directory: core/packages/volto | ||
run: make cypress-install | ||
|
||
- uses: JarvusInnovations/background-action@v1 | ||
name: Start Servers | ||
with: | ||
run: | | ||
make ci-acceptance-server-visual-start & | ||
make ci-acceptance-frontend-visual-start & | ||
# your step-level and job-level environment variables are available to your commands as-is | ||
# npm install will count towards the wait-for timeout | ||
# whenever possible, move unrelated scripts to a different step | ||
# to background multiple processes: add & to the end of the command | ||
|
||
wait-on: | | ||
http-get://localhost:8080/Plone | ||
http://localhost:3000 | ||
# IMPORTANT: to use environment variables in wait-on, you must use this form: ${{ env.VAR }} | ||
# See wait-on section below for all resource types and prefixes | ||
|
||
tail: true # true = stderr,stdout | ||
# This will allow you to monitor the progress live | ||
|
||
log-output-resume: stderr | ||
# Eliminates previosuly output stderr log entries from post-run output | ||
|
||
wait-for: 10m | ||
|
||
log-output: stderr,stdout # same as true | ||
|
||
log-output-if: failure | ||
# failure = exit-early or timeout | ||
|
||
# working-directory: backend | ||
|
||
- run: make ci-acceptance-test-visual | ||
|
||
# Upload Cypress screenshots | ||
- uses: actions/upload-artifact@v3 | ||
if: failure() | ||
with: | ||
name: cypress-screenshots-visual-acceptance | ||
path: cypress/screenshots | ||
|
||
# Upload Cypress videos | ||
- uses: actions/upload-artifact@v3 | ||
if: failure() | ||
with: | ||
name: cypress-videos-visual-acceptance | ||
path: cypress/videos | ||
|
||
# Upload Cypress visual testing screenshots | ||
- uses: actions/upload-artifact@v3 | ||
if: failure() | ||
with: | ||
name: cypress-image-snapshots-visual-acceptance | ||
path: cypress/__image_snapshots__ |
This file contains 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
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# Only store the #0.png images, ignore #1.png, #2.png etc... | ||
# Also ignore *.actual.png, *.diff.png | ||
!/__*_snapshots__/** | ||
/__*_snapshots__/*.png | ||
!/__*_snapshots__/*#0.png | ||
|
||
# Cumulative report outputs must be in the cypress | ||
# filesystem, but we want to avoid checking them in | ||
/config/cumulative*.report | ||
|
||
/screenshots |
Oops, something went wrong.