Files

65 lines
1.7 KiB
YAML

name: explorer-e2e
# Only explorer changes, or changes to this workflow, run it. Rust-only
# changes don't affect the web app: its tests run against a pinned, pre-built
# radicle-httpd.
on:
push:
paths:
- "explorer/**"
- "!explorer/crates/**"
- "!explorer/Cargo.toml"
- "!explorer/Cargo.lock"
- "!explorer/rust-toolchain"
- "!explorer/.cargo/**"
- ".github/workflows/explorer-e2e.yml"
workflow_dispatch:
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
defaults:
run:
working-directory: explorer
jobs:
e2e:
timeout-minutes: 30
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version-file: "explorer/.nvmrc"
- name: Install dependencies
run: npm ci
- name: Cache Playwright browsers
uses: actions/cache@v5
id: playwright-dep-cache
with:
path: ~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ hashFiles('explorer/package-lock.json') }}
- name: Install Playwright browsers
if: steps.playwright-dep-cache.outputs.cache-hit != 'true'
run: npx playwright install chromium
- name: Install Radicle binaries
run: |
mkdir -p tests/artifacts;
./scripts/install-binaries;
- name: Run Playwright tests
run: npm run test:e2e -- --project chromium
- name: Upload artifacts
uses: actions/upload-artifact@v7
if: always()
with:
name: test-artifacts-${{ runner.os }}
retention-days: 30
if-no-files-found: "ignore"
path: |
explorer/tests/artifacts/**/*