Add browser CI workflow - #34
Conversation
Co-authored-by: Codex <noreply@openai.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
@codex review |
|
Codex Review: Didn't find any major issues. Hooray! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
There was a problem hiding this comment.
🔵 Needs a closer look
The changes are CI/build infrastructure with external dependencies (Playwright browser download, GitHub Actions, Makefile restructuring) whose green-run behavior cannot be verified through static review and warrants human confirmation.
Pull request overview
This PR adds a dedicated Browser CI workflow that runs the existing Mocha browser test suite headlessly in Chromium via Playwright. It introduces a small browser/Makefile entry point plus a Playwright driver script, adapts browser/tests.html to publish Mocha's run stats so the harness can detect a completed, non-empty, failure-free run, and adjusts builder/Makefile so the browser test bundle is generated on demand (by browser CI) rather than as part of the default all target, while still being cleaned up.
Changes:
- New GitHub Actions
Browser CIworkflow (push tomain+ manual) that installs Playwright transiently and runs the browser suite. - New
browser/Makefileandbrowser/tests.cli.mjsPlaywright driver that waits forwindow.mochaStats, and asserts no page errors, no failures, and at least one test. builder/MakefiledropsBROWSER_TEST_DSTfromALLbut adds it explicitly toclean, keeping generation on-demand and cleanup intact.
File summaries
| File | Description |
|---|---|
.github/workflows/browser.yml |
New workflow running the browser suite in Chromium; versions and node config match the existing nodejs.yml. |
browser/Makefile |
New CI entry point delegating bundle generation to builder, installing Playwright transiently, and running the driver. |
browser/tests.cli.mjs |
New Playwright driver launching headless Chromium and validating Mocha run stats and page errors. |
browser/tests.html |
Captures runner.stats into window.mochaStats on completion for headless detection. |
builder/Makefile |
Removes browser test bundle from all; adds it to clean so cleanup still removes it. |
Review details
- Files reviewed: 5/5 changed files
- Comments generated: 0
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Summary
Browser CIworkflow for pushes tomainand manual runsbuilder/MakefileVerification
make -C browser install && make -C browser testnpm test(65 passed, 6 skipped)make -C builder/pack pack && make -C builder/pack bundled && make -C builder/pack unpack && make -C builder/pack test(36 passed)make -C browser cleanleaves its delegated bundle intactmake -C builder cleanremoves both browser bundles, whilemake -C builder allrecreates the benchmark bundle but not the browser test bundle