Add Node.js 22 and Node.js 24 runtimes - #261
Open
premtsd-code wants to merge 1 commit into
Open
Conversation
The newest runtime published by this repository is Node.js 20. Per the Node.js release schedule, Node 18 reached end of life in April 2025 and Node 20 in April 2026, leaving no supported Node.js version to target. Adds the nodejs:22 and nodejs:24 kinds, producing the action-nodejs-v22 and action-nodejs-v24 images, following the existing nodejs20Action layout. The runtime sources are not duplicated: they continue to be copied from core/nodejsActionBase by the existing Gradle copy tasks and removed again by cleanup, so the only substantive difference from nodejs20Action is the base image. - core/nodejs22Action, core/nodejs24Action - settings.gradle: register the new subprojects and test images - tests/dat/docker/nodejs22docker, nodejs24docker fixtures - NodeJs22/NodeJs24 ActionContainerTests and ConcurrentTests - ci.yaml: publish nightly and commit-tagged images for both - README: document the new kinds, images and build/test commands nodejs:20 remains the default kind, so existing actions are unaffected. Node.js versions in the resulting images: v22.23.2 and v24.19.0.
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.
Description
Adds
nodejs:22andnodejs:24runtimes, producing the imagesaction-nodejs-v22andaction-nodejs-v24.The newest Node.js runtime this repository publishes is Node.js 20. Per the Node.js release schedule, Node 18 reached end-of-life in April 2025 and Node 20 in April 2026, so a user on a current OpenWhisk deployment has no supported Node.js version to target. Node 22 and Node 24 restore that.
Changes
core/nodejs22Action/,core/nodejs24Action/—Dockerfile,build.gradle,.dockerignoreandCHANGELOG.md, following the existingnodejs20Actionlayout exactly. The runtime sources are not duplicated: they continue to be copied fromcore/nodejsActionBaseby the existingcopy*Gradle tasks and removed again bycleanup, so the only substantive difference fromnodejs20Actionis the base image.settings.gradle— register the new runtime subprojects and their test-fixture images.tests/dat/docker/nodejs22docker/,tests/dat/docker/nodejs24docker/— test fixture images, mirroringnodejs20docker.tests/src/test/scala/runtime/actionContainers/—NodeJs22ActionContainerTests,NodeJs22ConcurrentTests,NodeJs24ActionContainerTests,NodeJs24ConcurrentTests, binding the shared suites to the new images..github/workflows/ci.yaml— publish nightly and commit-tagged images for both new runtimes alongside the existing ones.README.md— document the new kinds, images and build/test commands.nodejs:20remains the default kind, so existing actions are unaffected.Testing
Built and tested locally against Docker Engine 29.6.2.
Node.js versions in the resulting images: v22.23.2 and v24.19.0.
The full suite passes — 332 tests, 0 failures — with the existing Node 18 and 20 suites green alongside the new ones:
NodeJs18ActionContainerTestsNodeJs18ConcurrentTestsNodeJs20ActionContainerTestsNodeJs20ConcurrentTestsNodeJs22ActionContainerTestsNodeJs22ConcurrentTestsNodeJs24ActionContainerTestsNodeJs24ConcurrentTestsThat covers the shared
BasicActionRunnerTestssurface — init/run protocol, initialization failures, application errors, unicode handling, environment variables, large payloads, resolved and rejected promises, webpacked functions, the bundledopenwhiskpackage, and bothexports.mainandmodule.exports.mainentry points — plus the concurrent-invocation suite.Notes for reviewers
apache/openwhisk#5542replaced the legacymavenGradle plugin withmaven-publishwithout declaring any publications, so the./gradlew installstep inci.yamlno longer installs the core artifacts — Gradle abbreviates the unmatched task name toinstallDist.:tests:compileTestScalathen cannot resolveorg.apache.openwhisk:openwhisk-common:1.0.1-SNAPSHOT, and every scheduled run since mid-2025 has failed. The local results above were obtained with core pinned todaac7659, the last commit before that change. This is worth fixing separately — it affects every runtime repository.ActionContainerin the core test utilities reads a container's address viadocker inspect --format '{{.NetworkSettings.IPAddress}}'. Docker Engine 29 removed that field, so the call fails withmap has no entry for key "IPAddress"and every container test dies right afterdocker run.{{.NetworkSettings.Networks.bridge.IPAddress}}works. Also worth a separate fix upstream.--kind, a deployment additionally needs them added to the runtimes manifest inapache/openwhisk; that is a separate change. The images are usable immediately via--docker openwhisk/action-nodejs-v22.