Skip to content

build!: update node runtime to version 24#567

Merged
zimeg merged 6 commits intoslackapi:mainfrom
desrosj:update/node-js-20-to-24
Mar 12, 2026
Merged

build!: update node runtime to version 24#567
zimeg merged 6 commits intoslackapi:mainfrom
desrosj:update/node-js-20-to-24

Conversation

@desrosj
Copy link
Contributor

@desrosj desrosj commented Mar 12, 2026

Summary

This bumps the Node.js runtime version from 20 to 24.

GitHub has begun deprecating Node20 and workflows using the slack-github-action action are now seeing the following notice on workflow runs:

Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: 91efab1. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true.

Requirements

This bumps the Node.js runtime version from `20` to `24`.
@salesforce-cla
Copy link

Thanks for the contribution! Before we can merge this, we need @desrosj to sign the Salesforce Inc. Contributor License Agreement.

@desrosj desrosj marked this pull request as ready for review March 12, 2026 18:40
@desrosj desrosj requested a review from a team as a code owner March 12, 2026 18:40
@zimeg zimeg added dependencies Pull requests that update a dependency file semver:major github_actions Pull requests that update GitHub Actions code labels Mar 12, 2026
@zimeg zimeg added this to the 3.0 milestone Mar 12, 2026
@codecov
Copy link

codecov bot commented Mar 12, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.86%. Comparing base (3ffcfc3) to head (8a347ee).
⚠️ Report is 5 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #567      +/-   ##
==========================================
+ Coverage   95.92%   99.86%   +3.93%     
==========================================
  Files          14        7       -7     
  Lines        2697      718    -1979     
==========================================
- Hits         2587      717    -1870     
+ Misses        110        1     -109     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@zimeg zimeg linked an issue Mar 12, 2026 that may be closed by this pull request
@zimeg
Copy link
Member

zimeg commented Mar 12, 2026

🧪 Our current testing patterns aren't updating the PR status but tests are still passing with these changes:

🔗 https://github.com/slackapi/slack-github-action/actions/runs/23018310756/job/66847533918

@zimeg zimeg changed the title build(Node.js): Upgrade Node.js runtime version. build!: update node runtime to version 24 Mar 12, 2026
@zimeg
Copy link
Member

zimeg commented Mar 12, 2026

🧪 More tests after more changes to the build:

🔗 https://github.com/slackapi/slack-github-action/actions/runs/23020161698/job/66854119889

@zimeg
Copy link
Member

zimeg commented Mar 12, 2026

👁️‍🗨️ I notice the techniques that use webhook are outputting a deprecation notice, but AFAICT it's from current dependencies. Let's keep note to fix this in future changes:

(node:2463) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.

package.json Outdated
Comment on lines +32 to +33
"node": ">=20.0.0",
"npm": ">=10.2.0"
"node": ">=24.0.0",
"npm": ">=11.3.0"
Copy link
Contributor Author

@desrosj desrosj Mar 12, 2026

Choose a reason for hiding this comment

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

May I suggest using 24.11.0 and 11.6.1? This was the the version that transitioned 24.x to LTS and the version of npm bundled with it.

Copy link
Member

Choose a reason for hiding this comment

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

@desrosj TIL about these later moves to LTS! Thanks for sharing this 👾 ✨

We added this in 8d63bbc with findings that runner images support the latest LTS versions and I understand self-hosted runners act similar 🤖

Tool name Installation strategy
Node.js 3 latest LTS versions

🔗 https://github.com/actions/runner-images?tab=readme-ov-file#software-and-image-support

Copy link
Member

@zimeg zimeg left a comment

Choose a reason for hiding this comment

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

👋 Hey @desrosj! Thank you so much for sending in this change! 🎁 ✨

I made a few additions to keep us on the latest stable versions for tests as well - let's get this merged and mark it toward #487 and #568 for upcoming release!

"scripts": {
"build": "ncc build src/index.js --license licenses.txt --source-map",
"check": "tsc --noemit --module es2022 --project ./jsconfig.json",
"dev": "act public --eventpath .github/resources/.actions/event.json --secret-file .github/resources/.env --platform ubuntu-latest=node:20-buster --container-architecture linux/amd64",
Copy link
Member

Choose a reason for hiding this comment

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

👻

description: "The timestamp of a Slack message or event in the response."
runs:
using: "node20"
using: "node24"
Copy link
Member

Choose a reason for hiding this comment

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

🔭 note: This is the change that's surfaced for actioneers using this step!

🔗 https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/#what-you-need-to-do

https://nodejs.org/en/blog/release/v24.11.0

Co-authored-by: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com>
@zimeg
Copy link
Member

zimeg commented Mar 12, 2026

Copy link
Member

@zimeg zimeg left a comment

Choose a reason for hiding this comment

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

@desrosj Woo! Thanks again for sharing changes and improvements to this project. Let's get this merged! 🚢 💨

@zimeg
Copy link
Member

zimeg commented Mar 12, 2026

🧪 With a final test run:

🔗 https://github.com/slackapi/slack-github-action/actions/runs/23021909593/job/66860212768

@zimeg zimeg merged commit 8dfc370 into slackapi:main Mar 12, 2026
5 of 6 checks passed
@desrosj desrosj deleted the update/node-js-20-to-24 branch March 12, 2026 23:56
@desrosj
Copy link
Contributor Author

desrosj commented Mar 12, 2026

Thanks @zimeg!

@zimeg
Copy link
Member

zimeg commented Mar 13, 2026

@desrosj Thanks too for sharing this update with us! The @v3.0.0 release and more recent should include it! 🎁

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

Labels

cla:signed dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code semver:major

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support Node 24 for runners

2 participants