feat: upgrade to Node 24 and modernize build toolchain#1
Merged
dcoraboeuf merged 11 commits intoMay 6, 2026
Merged
Conversation
…ate config self-test on vars.YONTRACK_URL
Contributor
Author
|
@dcoraboeuf here is another in the batch for your review |
Contributor
|
Available in v2.0.0 Thanks for your contribution @rathpc |
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.
Summary
Upgrade
cli-installto Node 24, esbuild bundling (replacing@vercel/ncc), ESLint 10, real unit tests, standardized semantic-release with floating major/minor tags, and a newCLAUDE.md. Pins to@nemerosa/ontrack-github-actions-module-install@^2.0.0(the new major from its just-merged Wave 1 upgrade).What changed
engines.nodeset to>=24;action.ymlruntime isnode24; CI workflow installs Node 24.@vercel/nccwithesbuild+esbuild-plugin-license(driven bybuild.js).dist/index.jsproduced by esbuild;dist/licenses.txtcarries third-party attributions. Stale ncc artifact (dist/sourcemap-register.js) removed.index.jsrefactored to a dependency-injection pattern. A top-level IIFE loads pure-ESM@actions/corevia dynamic ESM import (namespace, not.default) and callsrunAction({core, client}).@nemerosa/ontrack-github-actions-module-installstays as a top-levelrequire()since its CJS exports are preserved.index.test.jswith 7 unit tests covering input handling (url/token inputs + env-var fallbacks + precedence), parameter pass-through toclient.install, and outputs/PATH side effects. Tests run in <200ms without secrets or network.@nemerosa/ontrack-github-actions-module-installbumped from^1.2.1to^2.0.0.@actions/core: 1.x → 3.x (now consumed via dynamic ESM import).eslint8.x → 10.3.0 with new flat config..eslintrc.jsonand.eslintignoreremoved..releasercmatches the standardized template; floating-tag step force-updatesvXandvX.Yafter each release. Pre-release "commit dist" step removed — semantic-release's git plugin handles dist/ viaassets.actions/checkout@v4→@v6. "Test: local configuration" gated onvars.YONTRACK_URL != ''so fork PRs without that var don't fail.CLAUDE.md.Why this is breaking
engines.node >= 24andruns.using: node24mean self-hosted runners on older Node will fail. GitHub-hosted runners support Node 24 natively.Test plan
vars.YONTRACK_URLis set)Squash-merge commit message
When merging, please use this exact commit body: