From b032e5d23be2684c7ee6251c43b53a39f8cce016 Mon Sep 17 00:00:00 2001 From: cybermax4200 Date: Sat, 17 Oct 2026 21:07:57 +0100 Subject: [PATCH] ci: run playwright wallet/transaction matrix on chromium firefox webkit --- .github/workflows/e2e.yml | 67 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .github/workflows/e2e.yml diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml new file mode 100644 index 0000000..07cfe5a --- /dev/null +++ b/.github/workflows/e2e.yml @@ -0,0 +1,67 @@ +name: Playwright E2E + +on: + push: + branches: [main, develop] + pull_request: + branches: [main, develop] + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + e2e: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + # Browser-specific expectations in the specs (e.g. clipboard-only + # assertions on Chromium) are asserted explicitly per project. + project: [chromium, firefox, webkit] + steps: + - uses: actions/checkout@v4 + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 10 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: pnpm + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Install Playwright browsers + run: npx playwright install --with-deps ${{ matrix.project }} + + - name: Build + run: pnpm build + + - name: Run Playwright tests + env: + CI: true + run: pnpm playwright test --project=${{ matrix.project }} + + - name: Upload Playwright HTML report + if: always() + uses: actions/upload-artifact@v4 + with: + name: playwright-report-${{ matrix.project }} + path: playwright-report/ + retention-days: 7 + + - name: Upload Playwright traces (retries/failures only) + if: failure() + uses: actions/upload-artifact@v4 + with: + name: playwright-traces-${{ matrix.project }} + path: trace/ + retention-days: 7