Fix flake dependency hash #4313
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
name: check-visual | |
on: push | |
jobs: | |
generate-visual-diffs: | |
concurrency: | |
group: ${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
timeout-minutes: 30 | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Evict playwright snapshot cache when pushing to master | |
run: | | |
if [ ${{ github.ref }} = "refs/heads/master" ]; then | |
echo "Deleting ${{ runner.os }}-snapshots cache" | |
gh extension install actions/gh-actions-cache | |
gh actions-cache delete ${{ runner.os }}-snapshots --confirm || true | |
echo "Done" | |
fi | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: "20.9.0" | |
- name: Install dependencies | |
run: npm ci | |
- name: Cache Playwright browsers | |
uses: actions/cache@v4 | |
id: playwright-dep-cache | |
with: | |
path: ~/.cache/ms-playwright | |
key: ${{ runner.os }}-playwright-${{ hashFiles('package-lock.json') }} | |
- name: Cache Playwright visual snapshots | |
uses: actions/cache@v4 | |
id: playwright-snapshot-cache | |
with: | |
path: tests/visual/snapshots/**/* | |
key: ${{ runner.os }}-snapshots | |
- name: Install Playwright browsers | |
if: steps.playwright-dep-cache.outputs.cache-hit != 'true' | |
run: npx playwright install chromium webkit --with-deps | |
- name: Install Playwright dependencies | |
if: steps.playwright-dep-cache.outputs.cache-hit == 'true' | |
run: npx playwright install-deps | |
- name: Install Radicle binaries | |
run: | | |
mkdir -p tests/artifacts; | |
./scripts/install-binaries; | |
- name: Run Playwright tests | |
run: | | |
if [ ${{ github.ref }} = "refs/heads/master" ]; then | |
npm run test:e2e -- --project visual-desktop visual-mobile --update-snapshots || true; | |
else | |
npm run test:e2e -- --project visual-desktop visual-mobile; | |
fi | |
# We don't care about logs in visual snapshot tests, only the images. | |
- name: Cleanup artifacts | |
if: always() | |
run: | | |
shopt -s globstar; | |
rm -rf tests/artifacts/**/*.log; | |
- name: Upload artifacts | |
id: artifacts | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: test-artifacts-${{ runner.os }} | |
retention-days: 30 | |
if-no-files-found: "ignore" | |
path: | | |
tests/artifacts/**/* | |
- name: Check for artifacts | |
id: check_artifacts | |
run: | | |
if find ./tests/artifacts/**/*.png; then | |
echo "present=true" >> $GITHUB_OUTPUT | |
else | |
echo "present=false" >> $GITHUB_OUTPUT | |
fi |