Promote Playwright CI jobs from non-blocking to blocking
Problem¶
Three Playwright jobs in .github/workflows/ci.yml still run with continue-on-error: true:
e2e-lmse2e-lms-auth-criticale2e-cms
This is intentional while stabilization is in progress, but there is no explicit graduation bar for returning these checks to merge-blocking status.
Proposal¶
Define a measurable promotion gate and a rollout order.
Promotion metrics¶
Evaluate each job over a rolling 14-day window on main:
- Pass rate >= 98% (
success / total runs). - No unresolved deterministic regression older than 72 hours (tracked via linked issue/ticket).
- Flake rate <= 2% (failures that pass on rerun) using Playwright JSON report artifacts.
Promotion order¶
e2e-lms-auth-critical(already uses--retries=0and targeted scope).e2e-cms.e2e-lmsfull suite.
Implementation steps¶
- Track daily pass/fail counts for each job from workflow history and artifacts.
- Once a job meets the bar for 14 consecutive days, flip that job's
continue-on-errortofalse. - Keep the other jobs non-blocking until they independently meet the bar.
Acceptance criteria¶
- Promotion criteria are documented in this ticket and referenced from T-017.
- The original 14-day pass-rate/flake-rate gate is recorded as superseded by the repo-wide decision to make lint/check/test/e2e strictly blocking in one change.
-
e2e-lms-auth-criticalis promoted by settingcontinue-on-error: false. -
e2e-cmsis promoted by settingcontinue-on-error: false. -
e2e-lmsis promoted by settingcontinue-on-error: false.
Implemented direction¶
- Removed
continue-on-error: truefrom all three Playwright jobs in.github/workflows/ci.yml:e2e-lms,e2e-lms-auth-critical, ande2e-cms. - Updated failure summaries in each job to reflect blocking behavior (
Job is blocking; failures fail the workflow.). - Promoted all three jobs in one implementation pass instead of the staged order defined in this proposal because CI policy was hardened globally to fail on any lint/check/test/e2e failure.
Notes / decisions log¶
- 2026-08-11: Ticket closed as
done. All three Playwright jobs are now blocking in CI withcontinue-on-errorremoved. - 2026-08-11: The original staged promotion gate (14-day pass/flake window before each promotion) was superseded by the strict CI failure-gate decision and implemented in a single rollout.
Out of scope¶
- Rewriting Playwright suites.
- Changing app runtime/test architecture.
- Introducing a new test-reporting service.