mirror of
https://seed.radicle.dev/rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5.git
synced 2026-10-26 23:20:35 +08:00
radicle-httpd and rad-web have been removed from the files.radicle.xyz tar files, so we should build them to always have the web client be compatible with the httpd
101 lines
3.1 KiB
YAML
101 lines
3.1 KiB
YAML
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"
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
- uses: Swatinem/rust-cache@v2
|
|
with:
|
|
workspaces: radicle-httpd -> target
|
|
- name: Build
|
|
run: cargo build --all --release --manifest-path=./radicle-httpd/Cargo.toml
|
|
|
|
- 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;
|
|
./scripts/install-binaries --show-path >> $GITHUB_PATH;
|
|
|
|
- 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
|