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
16 changes: 9 additions & 7 deletions .github/workflows/live-e2e.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
# Live E2E — the console driven against a REAL ObjectStack backend (#2835).
#
# What runs: an allowlist of e2e/live specs (screen-flow, action-modal,
# master-detail — `pnpm test:e2e:live:ci`) against `objectstack dev` booted
# from PUBLISHED @objectstack/* packages serving the showcase app. Every PR
# therefore smoke-tests "this console x the released backend" — the class of
# bug only a real browser against a real backend can catch (framework#3528:
# a lazily-loaded widget's suspension unwound to the host's route boundary
# and tore down the flow dialog; zero unit test could see it).
# What runs: an allowlist of e2e/live specs (the list is whatever the
# `test:e2e:live:ci` script in package.json names — that script is the single
# source of truth; do not re-enumerate the specs here, a hand-copied list
# drifts on every promotion) against `objectstack dev` booted from PUBLISHED
# @objectstack/* packages serving the showcase app. Every PR therefore
# smoke-tests "this console x the released backend" — the class of bug only
# a real browser against a real backend can catch (framework#3528: a
# lazily-loaded widget's suspension unwound to the host's route boundary and
# tore down the flow dialog; zero unit test could see it).
#
# ⚠️ INFORMATIONAL, NON-REQUIRED lane — `continue-on-error: true` keeps a
# failure here from failing the workflow run, so it never blocks a merge and
Expand Down
15 changes: 10 additions & 5 deletions content/docs/guide/ci-cd-pipeline.md
Original file line number Diff line number Diff line change
Expand Up @@ -230,11 +230,16 @@ is informational and never ejects a PR from the merge queue. Do not add it to re
(and do not remove `continue-on-error`) until the nightly record proves the lane stable; see the
header comment in the workflow file (#2835).

What it does: runs the allowlisted live specs (`pnpm test:e2e:live:ci` — screen-flow,
action-modal, master-detail) against a real `objectstack dev` backend booted from **published**
`@objectstack/*` packages serving the showcase app, catching the class of bug only a real
browser against a real backend can see. Failures still surface as a red step plus an uploaded
Playwright report and job summary.
What it does: runs an allowlist of the live specs (`pnpm test:e2e:live:ci`) against a real
`objectstack dev` backend booted from **published** `@objectstack/*` packages serving the
showcase app, catching the class of bug only a real browser against a real backend can see.
Failures still surface as a red step plus an uploaded Playwright report and job summary.

**Which specs are in the allowlist:** whatever the `test:e2e:live:ci` script in `package.json`
names — that script is the single source of truth, and this page deliberately does not repeat
the list. The lane grows the allowlist a few proven specs at a time (see the workflow's header
comment), so every promotion would stale a hand-copied enumeration here; it already did
(objectui#3488).

Backend pins live in `e2e/live/ci/backend.env` and must match the `@objectstack/spec` version in
`pnpm-lock.yaml` — bump both in the same PR, or the run proves nothing.
Expand Down
Loading