Repository navigation
ci: verify the compiled CLI on the minimum supported Node versions - #34
Merged
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #29.
Adds a
compatmatrix job that proves the publishedenginesrange (>=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):
yarn install --immutableyarn workspace @timhettler/symbol-store build— compiles the CLI on that Node (tsc also type-checks)yarn workspace @timhettler/symbol-store run test:output— runs the compiled bin, the exact artifact a consumer runsfail-fast: false, so a break on one version doesn't hide the others. The dev version (.nvmrc, 23.6) is already covered bybuild-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-artifactcauses for the CLI shebang, and — sincetscemit 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:outputboth succeed and emit the sprite. Note: Node 18.x prints a benignExperimentalWarningfor 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