Summary
Add a GitHub Actions CI workflow covering submodule checkout, Emscripten build, test suite, and artifact upload on tag
Environment
- Product/Service: FeatureSET-Display — CI/CD
- File:
.github/workflows/ci.yml (new)
Problem Description
No CI exists. Changes are merged without automated build or test validation. There is no way to verify that the wasm build succeeds or that the JS test suite passes on every pull request.
Expected Behavior
A GitHub Actions workflow runs on every push and pull request. It:
- Checks out the repository including all submodules.
- Sets up the Emscripten toolchain via
mymindstorm/setup-emsdk.
- Runs
npm run build and npm run build-es6.
- Runs the test suite from issue 3c (
npm test).
- On tag pushes, uploads build artifacts (
dist/, build/).
README carries build/CI status badges.
Actual Behavior
No CI workflow. No automated build or test validation.
Tasks
Impact
High (long-term) — No CI means every merged PR is a potential silent regression. Essential for maintaining the codebase going forward.
Additional Context
Dependencies: Issue 3c (test system) must exist before the npm test step is meaningful. Issue 3b (Emscripten flag cleanup) should land first to ensure the build flags are correct. The mymindstorm/setup-emsdk action supports pinning a specific Emscripten version via the emscripten-version input — use the same version currently in use locally to avoid build drift.
Summary
Add a GitHub Actions CI workflow covering submodule checkout, Emscripten build, test suite, and artifact upload on tag
Environment
.github/workflows/ci.yml(new)Problem Description
No CI exists. Changes are merged without automated build or test validation. There is no way to verify that the wasm build succeeds or that the JS test suite passes on every pull request.
Expected Behavior
A GitHub Actions workflow runs on every push and pull request. It:
mymindstorm/setup-emsdk.npm run buildandnpm run build-es6.npm test).dist/,build/).README carries build/CI status badges.
Actual Behavior
No CI workflow. No automated build or test validation.
Tasks
.github/workflows/ci.ymlwith:actions/checkoutwithsubmodules: recursivemymindstorm/setup-emsdkfor Emscriptennpm ci+npm run build+npm run build-es6npm test(depends on issue 3c)actions/upload-artifactstep gated ongithub.ref_type == 'tag'README.mdImpact
High (long-term) — No CI means every merged PR is a potential silent regression. Essential for maintaining the codebase going forward.
Additional Context
Dependencies: Issue 3c (test system) must exist before the
npm teststep is meaningful. Issue 3b (Emscripten flag cleanup) should land first to ensure the build flags are correct. Themymindstorm/setup-emsdkaction supports pinning a specific Emscripten version via theemscripten-versioninput — use the same version currently in use locally to avoid build drift.