You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Today the only end-to-end coverage that runs on each PR in GitHub Actions is the Django/Selenium suite under tests/e2e/. The browser-side Playwright suite under web/e2e/ (driven by web/playwright.config.js) is run locally by frontend developers — it never executes on CI. That gap means UI regressions only surface during manual review or after merge.
Problem
Frontend changes can land without any automated browser verification.
Reviewers and release managers cannot trust that a green CI implies a working web UI.
Local-only execution drifts: tests rot, fixtures break silently, and the bar to run them goes up over time.
Proposal
Wire up the existing Playwright suite to run on every PR via GitHub Actions. Concretely:
Add a ci-web-e2e job (or extend ci-web.yml) that:
Boots an authentik stack sufficient for the current Playwright fixtures (auth flows, providers, sessions).
Installs Playwright browsers via corepack-pinned npm.
Runs npm run -w web playwright against that stack.
Uploads the HTML report and any traces/videos as artifacts on failure.
Decide on a sharding/parallelism story so the job stays under a sensible wall-clock budget.
Make the job required for merge once it is stable.
Dependencies
Builds on top of the Corepack normalization in ci: Consistent NPM versions via Corepack #20400 — Playwright install is sensitive to npm version drift, and the e2e job will use the same composite setup-node action.
Branch github-ci-playwright-e2e already carries WIP scaffolding on top of npm-corepack.
Context
Today the only end-to-end coverage that runs on each PR in GitHub Actions is the Django/Selenium suite under
tests/e2e/. The browser-side Playwright suite underweb/e2e/(driven byweb/playwright.config.js) is run locally by frontend developers — it never executes on CI. That gap means UI regressions only surface during manual review or after merge.Problem
Proposal
Wire up the existing Playwright suite to run on every PR via GitHub Actions. Concretely:
ci-web-e2ejob (or extendci-web.yml) that:corepack-pinned npm.npm run -w web playwrightagainst that stack.Dependencies
setup-nodeaction.github-ci-playwright-e2ealready carries WIP scaffolding on top ofnpm-corepack.Acceptance criteria
web/**(and onmain).playwright installstep in dev docs that CI skips.Out of scope