Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 12 additions & 18 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -337,24 +337,18 @@ jobs:
name: E2E Tests (shard ${{ matrix.shard }}/${{ strategy.job-total }})
runs-on: ubuntu-latest
needs: [lint, load-tests, changes]
# PAUSED 2026-08-11 — remove this line to resume. test-summary's
# E2E-report steps are guarded on `needs.e2e-tests.result != 'skipped'`
# and degrade cleanly while this is off. Do NOT restore `if: always()`
# (that was the original value) — removed the same pattern from
# accessibility-tests/visual-tests 2026-08-12 after verifying live that
# it ignores workflow cancellation.
#
# Path filtering was added 2026-08-14 (see the `changes` job) to every
# other suite in this chain. When resuming e2e, delete the `if: false`
# line above and uncomment the real gated condition below instead of
# restoring plain always() — same always()+!cancelled() pairing used
# everywhere else in this file.
if: false
# if: |
# always() && !cancelled() &&
# needs.lint.result == 'success' &&
# (needs.load-tests.result == 'success' || needs.load-tests.result == 'skipped') &&
# (needs.changes.result != 'success' || needs.changes.outputs.e2e == 'true')
# RESUMED 2026-08-17 — was paused since 2026-08-11 pending the e2e
# round-2 re-verification (all 12 shard groups / 543 tests confirmed
# clean, see PR #7). Path-filtered gating, same pattern as every other
# suite in this chain (always()+!cancelled() so this job is still
# evaluated when its predecessor was filtered-out-skipped, not just on
# success; never bare always() — that ignores workflow cancellation,
# verified live 2026-08-12).
if: |
always() && !cancelled() &&
needs.lint.result == 'success' &&
(needs.load-tests.result == 'success' || needs.load-tests.result == 'skipped') &&
(needs.changes.result != 'success' || needs.changes.outputs.e2e == 'true')
timeout-minutes: 60
strategy:
fail-fast: false
Expand Down
20 changes: 12 additions & 8 deletions docs/ci_workflow_notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,14 +69,18 @@ code or contort a naming scheme.

## Currently paused jobs

| Job | Status | Notes |
|---|---|---|
| `e2e-tests` | **paused** since 2026-08-11 (`if: false`) | By request, not due to failures. `test-summary`'s E2E-report steps are guarded on `needs.e2e-tests.result != 'skipped'` so the pipeline degrades cleanly on missing shard artifacts. To resume: delete the active `if: false` line and uncomment the real gated condition already sitting commented-out directly below it in `ci.yml` — do **not** restore `if: always()`, see the "Path-filtered CI" section below for why. |

`e2e-tests` now depends on `needs: [lint, load-tests, changes]` (as of the
2026-08-14 path-filtering change below) rather than just `visual-tests` —
resuming it still works independent of any of those, since the job's own
`if:` is what actually controls it.
None. `e2e-tests` was paused 2026-08-11 through 2026-08-17 (`if: false`, by
request, not due to failures) and resumed once the full 543-test e2e round-2
re-verification came back clean (PR #7) — it now uses the same path-filtered
`if:` pattern as every other suite in this chain (see "Path-filtered CI"
below), gated on `needs.changes.outputs.e2e`. `test-summary`'s E2E-report
steps are still guarded on `needs.e2e-tests.result != 'skipped'`, which was
originally added for the pause but stays harmless now that e2e runs
normally — a path-filtered skip (no `tests/e2e/**` changes in a given PR)
degrades the same way a paused job did.

`e2e-tests` depends on `needs: [lint, load-tests, changes]` (as of the
2026-08-14 path-filtering change below) rather than just `visual-tests`.

---

Expand Down
Loading