Skip to content

Node 24 enforcement + Linux ARM32 deprecation support#4303

Merged
salmanmkc merged 7 commits intomainfrom
salmanmkc/node24-enforcement-arm32-deprecation
Mar 17, 2026
Merged

Node 24 enforcement + Linux ARM32 deprecation support#4303
salmanmkc merged 7 commits intomainfrom
salmanmkc/node24-enforcement-arm32-deprecation

Conversation

@salmanmkc
Copy link
Contributor

When we flip UseNode24ByDefault, actions targeting node20 get forced to node24 and we show an annotation saying which ones were forced over. On linux-arm32 we can't do that since there's no node24 binary, so instead we show a deprecation warning and keep them on node20 for now.

Added two new feature flags for the arm32 side:

  • actions_runner_deprecate_linux_arm32 - warns that arm32 is going away, keeps running on node20
  • actions_runner_kill_linux_arm32 - for when we actually want to stop supporting it, fails the step

Also split the tracking so upgraded-to-node24 actions and still-on-node20 actions get separate annotations instead of lumping them together.

Date for arm32 EOL is TBD, placeholder is October 2026, need to align on this still

@salmanmkc salmanmkc requested a review from a team as a code owner March 16, 2026 14:01
Copilot AI review requested due to automatic review settings March 16, 2026 14:01
@salmanmkc salmanmkc force-pushed the salmanmkc/node24-enforcement-arm32-deprecation branch from ff34d03 to 4c5eac9 Compare March 16, 2026 14:03
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds Node.js 24 enforcement/tracking for Node.js actions, with special handling for Linux ARM32 where Node 24 binaries are unavailable (deprecation/kill switch behavior and messaging).

Changes:

  • Track Node20-targeting actions separately as either still-on-node20 vs. forced-to-node24, and emit separate job-level annotations.
  • Add Linux ARM32 deprecation + kill-switch feature flags and plumb them into Node version selection.
  • Add/extend L0 tests covering upgraded vs. deprecated tracking and ARM32-related NodeUtil behavior.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
src/Test/L0/Worker/StepHostNodeVersionL0.cs Adds L0 tests for ARM32 deprecate/kill behaviors in NodeUtil.
src/Test/L0/Worker/HandlerFactoryL0.cs Adds L0 tests for upgraded-to-node24 vs deprecated tracking behavior.
src/Runner.Worker/JobExtension.cs Splits job-finalization warnings for still-on-node20 vs upgraded-to-node24 actions.
src/Runner.Worker/Handlers/HandlerFactory.cs Implements per-action Node version enforcement, ARM32 deprecate/kill logic, and tracking into two sets.
src/Runner.Worker/GlobalContext.cs Adds a new global set for actions upgraded to node24.
src/Runner.Worker/ExecutionContext.cs Initializes the new upgraded-actions tracking set at job start.
src/Runner.Common/Util/NodeUtil.cs Extends ARM32 node version check to support deprecation and kill-switch phases.
src/Runner.Common/Constants.cs Adds ARM32 feature flag constants and ARM32 deprecation message/date constants.

You can also share your feedback on Copilot code review. Take the survey.

@salmanmkc salmanmkc force-pushed the salmanmkc/node24-enforcement-arm32-deprecation branch from a3c3706 to 3bd3bff Compare March 16, 2026 14:15
Copy link
Collaborator

@ericsciple ericsciple left a comment

Choose a reason for hiding this comment

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

Review from GitHub Copilot (via CLI)

ericsciple
ericsciple previously approved these changes Mar 17, 2026
@salmanmkc salmanmkc closed this Mar 17, 2026
@salmanmkc salmanmkc reopened this Mar 17, 2026
@salmanmkc salmanmkc merged commit 18d0789 into main Mar 17, 2026
12 checks passed
@salmanmkc salmanmkc deleted the salmanmkc/node24-enforcement-arm32-deprecation branch March 17, 2026 18:58
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.

3 participants