Skip to content

feat: multi-token (SEP-41) deposit support for pools (Closes #255) (#… #319

feat: multi-token (SEP-41) deposit support for pools (Closes #255) (#…

feat: multi-token (SEP-41) deposit support for pools (Closes #255) (#… #319

Workflow file for this run

name: E2E – Playwright (frontend)
on:
workflow_dispatch:
pull_request:
paths:
- "frontend/**"
- ".github/workflows/e2e.yml"
push:
branches: [main]
paths:
- "frontend/**"
- ".github/workflows/e2e.yml"
# Cancel superseded runs on the same ref to save CI minutes.
concurrency:
group: e2e-${{ github.ref }}
cancel-in-progress: true
jobs:
e2e:
name: Playwright
runs-on: ubuntu-latest
timeout-minutes: 15
defaults:
run:
working-directory: frontend
steps:
- uses: actions/checkout@v5
# pnpm version comes from the "packageManager" field, which lives in
# frontend/package.json (there is no root package.json in this repo).
- name: Setup pnpm
uses: pnpm/action-setup@v6
with:
package_json_file: frontend/package.json
- name: Setup Node
uses: actions/setup-node@v5
with:
node-version: 22
cache: pnpm
cache-dependency-path: frontend/pnpm-lock.yaml
- name: Install dependencies
run: pnpm install --frozen-lockfile
# Resolve the exact Playwright version so the browser cache key is precise.
- name: Resolve Playwright version
id: pw
run: echo "version=$(pnpm exec playwright --version | awk '{print $2}')" >> "$GITHUB_OUTPUT"
- name: Cache Playwright browsers
id: pw-cache
uses: actions/cache@v5
with:
path: ~/.cache/ms-playwright
key: playwright-${{ runner.os }}-${{ steps.pw.outputs.version }}
# On a cache hit only the OS deps are needed; otherwise download browsers too.
- name: Install Playwright browsers
run: |
if [ "${{ steps.pw-cache.outputs.cache-hit }}" = "true" ]; then
pnpm exec playwright install-deps chromium
else
pnpm exec playwright install --with-deps chromium
fi
- name: Run E2E tests
run: pnpm test:e2e
- name: Upload Playwright report
if: ${{ !cancelled() }}
uses: actions/upload-artifact@v4
with:
name: playwright-report
path: frontend/playwright-report/
retention-days: 7