Skip to content

feat: replace Bash update with full JS build - #2659

Open
nschonni wants to merge 2 commits into
nodejs:mainfrom
nschonni:full-js-build
Open

nschonni wants to merge 2 commits into
nodejs:mainfrom
nschonni:full-js-build

Conversation

@nschonni

@nschonni nschonni commented Oct 17, 2026 •

Copy link
Copy Markdown
Member

Description

Building on #2650.
The build-automation.mjs now handles all the updating of the Dockerfiles, but drops the previous CLI/options.
This also removes the related special config files and supporting bash scripts.

Motivation and Context

The old update.sh had a few options around version and variants. While handy for some debugging, with the easiness of comparing the outputs, its better to just test and compare without filtering.

Testing Details

  1. Run npm ci
  2. Change any Dockerfile version number
  3. Run npm run build
  4. Any of the changed files should be reverted to the current NODE_VERSION should be pointing to the latest
  5. Change any of the Node.keys values or anything in the Dockerfile. Running build shouldn't produce any diff, but warn of the missmatch non-version changes detected, but file not updated.

Example Output(if appropriate)

$ npm run build

> build
> node build-automation.mjs

Found major versions in versions.json: 22, 24, 26
Grabbing Index.json files
Checking for updates for 22
        Latest version: v22.23.4
        Released: 2026-10-20
        Security release: true
        alpine3.23: everything up to date!
        alpine3.24: everything up to date!
        bookworm: everything up to date!
        bookworm-slim: everything up to date!
        trixie: everything up to date!
        trixie-slim: everything up to date!
Checking for updates for 24
        Latest version: v24.22.1
        Released: 2026-10-20
        Security release: true
        alpine3.23: everything up to date!
        alpine3.24: everything up to date!
        bookworm: everything up to date!
        bookworm-slim: everything up to date!
        trixie: everything up to date!
        trixie-slim: everything up to date!
Checking for updates for 26
        Latest version: v26.12.1
        Released: 2026-10-21
        Security release: true
        alpine3.23: everything up to date!
        alpine3.24: everything up to date!
        bookworm: everything up to date!
        bookworm-slim: everything up to date!
        trixie: everything up to date!
        trixie-slim: everything up to date!
No Pull Request will be created.

Types of changes

  • Documentation
  • Version change (Update, remove or add more Node.js versions)
  • Variant change (Update, remove or add more variants, or versions of variants)
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Other (none of the above)

Checklist

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING.md document.
  • All new and existing tests passed.

- Use ShellJS for better GitBash compat than process spawn calls for remaining `update.sh` use
- Use the GItHub Action library to pass/set the ENV for the GitHub Action
- Add additional logging for local troubleshooting
@nschonni
nschonni marked this pull request as ready for review October 22, 2026 22:36
@nschonni

Copy link
Copy Markdown
Member Author

Unmarking as draft, as this could land instead of #2650, since it includes those changes

@nschonni
nschonni requested a review from a team October 22, 2026 22:37
@nschonni nschonni mentioned this pull request Oct 22, 2026
12 tasks
@MikeMcC399

Copy link
Copy Markdown
Contributor

After rebasing in a test branch to drop the last update 80f02a5 and running npm run build, I saw the following dialog:

$ npm run build

> build
> node build-automation.mjs

Found major versions in versions.json: 22, 24, 26
Grabbing Index.json files
Checking for updates for 22
        Latest version: v22.23.4
        Released: 2026-10-20
        Security release: true
        alpine3.23: updating to v22.23.4
        alpine3.24: updating to v22.23.4
        bookworm: updating to v22.23.4
        bookworm-slim: updating to v22.23.4
        trixie: updating to v22.23.4
        trixie-slim: updating to v22.23.4
Checking for updates for 24
        Latest version: v24.22.1
        Released: 2026-10-20
        Security release: true
        alpine3.23: updating to v24.22.1
        alpine3.24: updating to v24.22.1
        bookworm: updating to v24.22.1
        bookworm-slim: updating to v24.22.1
        trixie: updating to v24.22.1
        trixie-slim: updating to v24.22.1
Checking for updates for 26
        Latest version: v26.12.1
        Released: 2026-10-21
        Security release: true
        alpine3.23: updating to v26.12.1
        alpine3.24: updating to v26.12.1
        bookworm: updating to v26.12.1
        bookworm-slim: updating to v26.12.1
        trixie: updating to v26.12.1
        trixie-slim: updating to v26.12.1
::set-env name=NODE_PR_TITLE::feat: Node.js v22.23.4, v24.22.1, v26.12.1

Committing that change, then rebasing on main dropped the new commit, which showed that the commit results of the new process were inline with the old process.

@MikeMcC399 MikeMcC399 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

If you're also happy with this, let's take this PR instead of just the preliminary step of #2650

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants