`e2e_tests.yml` filtered on `branches: [main]` for both `push` and `pull_request` — the same leftover as main.yml, but with a sharper consequence: `main` never matches on this branch, so the filter matched nothing and the suite has never run on `v1/main` at all. The branch's full run history contains zero `Playwright Tests` runs, only `Run install, format, lint, build, and test on every push` and `CLI Tests`. Repointed both filters at `v1/main` so the gate actually gates. Unlike the main.yml change this is a real behavior change — it turns a dead workflow back on — so it is deliberately a separate commit. Refs #2065 Signed-off-by: cliffhall <cliff@futurescale.com>
82 lines
2.7 KiB
YAML
82 lines
2.7 KiB
YAML
name: Playwright Tests
|
|
|
|
# Pinned to `v1/main`, this branch's own base. These filters read `main`
|
|
# historically, from when the v1 line was itself `main` — which meant they
|
|
# matched nothing here and the suite silently never ran on this branch.
|
|
# See #2065.
|
|
on:
|
|
push:
|
|
branches: [v1/main]
|
|
pull_request:
|
|
branches: [v1/main]
|
|
|
|
jobs:
|
|
test:
|
|
# Installing Playwright dependencies can take quite awhile, and also depends on GitHub CI load.
|
|
timeout-minutes: 15
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y libwoff1
|
|
|
|
- uses: actions/checkout@v6
|
|
|
|
- uses: actions/setup-node@v6
|
|
id: setup_node
|
|
with:
|
|
node-version-file: package.json
|
|
cache: npm
|
|
|
|
# Cache Playwright browsers
|
|
- name: Cache Playwright browsers
|
|
id: cache-playwright
|
|
uses: actions/cache@v5
|
|
with:
|
|
path: ~/.cache/ms-playwright # The default Playwright cache path
|
|
key: ${{ runner.os }}-playwright-${{ hashFiles('package-lock.json') }} # Cache key based on OS and package-lock.json
|
|
restore-keys: |
|
|
${{ runner.os }}-playwright-
|
|
|
|
- name: Install dependencies
|
|
run: npm ci
|
|
|
|
- name: Install Playwright dependencies
|
|
run: npx playwright install-deps
|
|
|
|
- name: Install Playwright and browsers unless cached
|
|
run: npx playwright install --with-deps
|
|
if: steps.cache-playwright.outputs.cache-hit != 'true'
|
|
|
|
- name: Run Playwright tests
|
|
id: playwright-tests
|
|
run: npm run test:e2e
|
|
|
|
- name: Upload Playwright Report and Screenshots
|
|
uses: actions/upload-artifact@v7
|
|
if: steps.playwright-tests.conclusion != 'skipped'
|
|
with:
|
|
name: playwright-report
|
|
path: |
|
|
client/playwright-report/
|
|
client/test-results/
|
|
client/results.json
|
|
retention-days: 2
|
|
|
|
- name: Publish Playwright Test Summary
|
|
uses: daun/playwright-report-summary@v3
|
|
if: steps.playwright-tests.conclusion != 'skipped'
|
|
with:
|
|
create-comment: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
|
|
report-file: client/results.json
|
|
comment-title: "🎭 Playwright E2E Test Results"
|
|
job-summary: true
|
|
icon-style: "emojis"
|
|
custom-info: |
|
|
**Test Environment:** Ubuntu Latest, Node.js ${{ steps.setup_node.outputs.node-version }}
|
|
**Browsers:** Chromium, Firefox
|
|
|
|
📊 [View Detailed HTML Report](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}) (download artifacts)
|
|
test-command: "npm run test:e2e"
|