diff --git a/.gitignore b/.gitignore index 47d118f5..41501c38 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,5 @@ data/projects/*.tmp # Uploaded images are user data like the projects: content-addressed, written by the API, # reproducible only by uploading them again. data/textures/ +logs/ .DS_Store diff --git a/README.md b/README.md index 8362612b..bc5d29e2 100644 --- a/README.md +++ b/README.md @@ -575,7 +575,7 @@ and reasons, not what the code does: a `/** */` on every export whose name does ## Development -Node 22 is required (on this machine: `PATH=/opt/node22/bin:$PATH`). +Node 22 is required (`/usr/bin/node`, in the default PATH). ```bash npm install @@ -585,10 +585,14 @@ npm run typecheck npm run lint # ESLint, type-aware; --fix for the fixable half npm run format # Prettier over src, tests and tools npm run check # typecheck + lint + format:check + tests, what CI would run +./check.sh # the same, ending in `=== CHECK EXIT n ===`: piped into `tail` npm's exit + # code is lost (tail's is reported), so a red run reads as green npm run build # writes dist/ and regenerates index.html export GM_REMOTE=user@host # optional: run the browser elsewhere; see below -node tools/seed-e2e.mjs && node tools/e2e.mjs # 456 editor checks, screenshots in /tmp/gm-e2e-*.png +node tools/seed-e2e.mjs && node tools/e2e.mjs # 465 editor checks, screenshots in /tmp/gm-e2e-*.png GM_STEPS=20 node tools/e2e.mjs # or 1-12, or 6,20 – a subset while working on one step +./e2e.sh start [GM_STEPS] # the same run detached, see below +./e2e.sh status # live progress, or the last run's result node tools/seed-jumprun.mjs && node tools/smoke-jumprun.mjs # 24 checks: the example game, played end to end node tools/seed-tetris.mjs && node tools/smoke-tetris.mjs # 19 checks: the Tetris example, played end to end ``` @@ -606,6 +610,17 @@ four cores of this box (60% renderer, 18% GPU process, load ~1.0), which it carr step is being worked on, `GM_STEPS` keeps a run to seconds – take the whole suite before a commit, or when a change touches drawing, the widget toolkit or anything else every step sees. +**`./e2e.sh start` runs the suite detached**, in a transient `game-maker-e2e.service`, and returns at +once; output goes to `logs/e2e-_