Skip to content

ci: verify the compiled CLI on the minimum supported Node versions - #34

Merged
timhettler merged 1 commit into
mainfrom
ci/node-compat-matrix
Aug 10, 2026
Merged

timhettler merged 1 commit into
mainfrom
ci/node-compat-matrix

Conversation

@timhettler

Copy link
Copy Markdown
Owner

Closes #29.

Adds a compat matrix job that proves the published engines range (>=18.20.0 <19 || >=20.10.0) actually works, rather than just asserting it.

What it does

For each of Node 18.20.0, 20.10.0, and 22 (the lower boundary of each engines range, plus a modern LTS):

  1. yarn install --immutable
  2. yarn workspace @timhettler/symbol-store build — compiles the CLI on that Node (tsc also type-checks)
  3. yarn workspace @timhettler/symbol-store run test:output — runs the compiled bin, the exact artifact a consumer runs

fail-fast: false, so a break on one version doesn't hide the others. The dev version (.nvmrc, 23.6) is already covered by build-test, which keeps the full mocha suite (it needs ≥23.6 for native TS type-stripping).

Why rebuild per Node instead of sharing one artifact

Rebuilding per Node is self-contained, avoids the exec-bit loss that upload/download-artifact causes for the CLI shebang, and — since tsc emit is Node-independent — is equivalent for the runtime claim while also proving the package compiles on each Node.

Validation

Run locally on Node 18.20.4 before writing the job: build + test:output both succeed and emit the sprite. Note: Node 18.x prints a benign ExperimentalWarning for the JSON import attribute (stderr, exit 0) — the feature works, it's just flagged experimental until it stabilized in later releases.

🤖 Generated with Claude Code

Add a "compat" matrix job that compiles the CLI and runs the compiled
bin on Node 18.20.0, 20.10.0, and 22 — the lower boundary of each
engines range plus a modern LTS. The full mocha suite still needs Node
>=23.6 (native TS type-stripping) and stays in build-test.

Validated locally on Node 18.20.4: build + test:output succeed and emit
the sprite (with a benign JSON-import ExperimentalWarning on 18.x).

Closes #29.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@timhettler
timhettler merged commit fb91212 into main Aug 10, 2026
4 checks passed
@timhettler
timhettler deleted the ci/node-compat-matrix branch August 10, 2026 19:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ci: test on the minimum supported Node versions (18.20 / 20.10), not just 23.6

1 participant