Skip to content

build!: update node runtime to version 24 - #567

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

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

Conversation

@desrosj

@desrosjdesrosj commented Mar 12, 2026

Copy link
Copy Markdown
Contributor

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
Copy Markdown

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 ownerMarch 12, 2026 18:40
@zimegzimeg added dependencies Pull requests that update a dependency file semver:major github_actions Pull requests that update GitHub Actions code labels Mar 12, 2026
@zimegzimeg added this to the 3.0 milestone Mar 12, 2026
@codecov

codecovBot commented Mar 12, 2026

Copy link
Copy Markdown

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.

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

Copy link
Copy Markdown
Member

🧪 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

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

Copy link
Copy Markdown
Member

🧪 More tests after more changes to the build:

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

@zimeg

Copy link
Copy Markdown
Member

👁️‍🗨️ 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.

Comment threadpackage.json Outdated
Comment on lines +32 to +33
"node": ">=20.0.0",
"npm": ">=10.2.0"
"node": ">=24.0.0",
"npm": ">=11.3.0"

@desrosjdesrosjMar 12, 2026

Copy link
Copy Markdown
ContributorAuthor

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
Copy Markdown
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 nameInstallation strategy
Node.js3 latest LTS versions

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

@zimegzimeg left a comment

Copy link
Copy Markdown
Member

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!

Comment threadpackage.json
"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
Copy Markdown
Member

Choose a reason for hiding this comment

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

👻

Comment threadaction.yml
description: "The timestamp of a Slack message or event in the response."
runs:
using: "node20"
using: "node24"

Copy link
Copy Markdown
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
Copy Markdown
Member

@zimegzimeg left a comment

Copy link
Copy Markdown
Member

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
Copy Markdown
Member

🧪 With a final test run:

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

@zimeg
zimeg merged commit 8dfc370 into slackapi:mainMar 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
Copy Markdown
ContributorAuthor

Thanks @zimeg!

@zimeg

Copy link
Copy Markdown
Member

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

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

Labels

cla:signeddependenciesPull requests that update a dependency filegithub_actionsPull requests that update GitHub Actions codesemver:major

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support Node 24 for runners

2 participants

@desrosj@zimeg