browser tests run only by hand: the suites that launch Chrome / Chromium move to tests/browser/*.browser.ts (bun test, ci, ci:quick and the Forgejo workflows never pick them up; bun run test:browser runs them); the desktop boot check leaves bun run ci (it stays in desktop-release.ts mac at release time); CI=full is gone: Forgejo's ci runs the Rust steps when the push changed a Rust input (STOREBOUND_CI_BASE=HEAD~1), no Playwright install; CONTRIBUTING
This commit is contained in:
parent
4c7ff89950
commit
cd1e13c1e2
20 changed files with 116 additions and 133 deletions
|
|
@ -9,9 +9,16 @@ but fixes, store rule updates and new engines / AI tools are very welcome.
|
|||
bun install # Bun 1.1+; playwright is a dev dependency (renders, web capture)
|
||||
bun run ci:quick # inner loop: typecheck + the tests your change touches + scrub (seconds)
|
||||
bun run ci # full gate before pushing: every check and test (adapters, API tables, typecheck,
|
||||
# desktop build and boot check, Rust host when it changed, scrub)
|
||||
# desktop build, Rust host when it changed, scrub); no browser
|
||||
bun run test:browser # only by hand: the suites that start Chrome / Chromium (tests/browser/*.browser.ts)
|
||||
```
|
||||
|
||||
**Browser tests run only by hand.** The suites that launch a browser (console fill / flow / session / persist, web
|
||||
capture, glyphs and ligatures, local fonts, feature-graphic fit, site overflow) live in `tests/browser/` as
|
||||
`*.browser.ts`, which `bun test`, `ci`, `ci:quick` and the Forgejo workflows never pick up. Run `bun run test:browser`
|
||||
when you change that code. The one browser step left in any automatic path is the desktop boot check inside
|
||||
`tools/desktop-release.ts mac` at release time: the built window must be seen rendering before a build ships.
|
||||
|
||||
**Which one when.** Run `bun run ci:quick` while you work: it diffs against `origin/main` (committed, staged,
|
||||
unstaged and new files), maps the changed files to the tests that import them (directly, through other modules, or
|
||||
by naming a fixture or page) and runs those, plus `tsc` (incremental) and the scrub. A change to `package.json`,
|
||||
|
|
@ -21,10 +28,10 @@ push and check its exit code: it is the gate, `ci:quick` is not.
|
|||
`tools/ci.ts` runs the steps as a task graph (independent steps at the same time, output prefixed with the step
|
||||
name, the first failure stops the rest, a time-per-step summary at the end). The tests run as parallel shards
|
||||
(CPU cores - 1, at most 8; `STOREBOUND_CI_SHARDS=n` overrides) balanced by the durations of the last run, kept in
|
||||
`node_modules/.cache/storebound-ci/`; the browser suites get a shard each. So tests must be shard-safe: temp folders
|
||||
`node_modules/.cache/storebound-ci/`. So tests must be shard-safe: temp folders
|
||||
from `mkdtempSync`, servers on port 0, no fixed sleeps (wait for the event), no state shared through files in the
|
||||
checkout. The desktop Rust host (`cargo test`, `clippy`) runs only when `apps/desktop/src-tauri/` or
|
||||
`tools/build-sidecars.ts` changed against `origin/main`; `CI=full bun run ci` always runs it (Forgejo CI does).
|
||||
`tools/build-sidecars.ts` changed against `origin/main` (Forgejo CI: against the pushed commit's parent).
|
||||
|
||||
Try the screenshot and video pipeline on the demo game without any store account: see
|
||||
[examples/demo-game/README.md](examples/demo-game/README.md).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue