Skip to content

chore: bump Node 20 → 24 in GitHub Actions workflows#1323

Merged
sscargal merged 1 commit into
MemMachine:mainfrom
sscargal:chore/1221-node20-to-node24-workflows
Apr 17, 2026
Merged

chore: bump Node 20 → 24 in GitHub Actions workflows#1323
sscargal merged 1 commit into
MemMachine:mainfrom
sscargal:chore/1221-node20-to-node24-workflows

Conversation

@sscargal

Copy link
Copy Markdown
Contributor

Purpose of the change

Node.js 20 GitHub Actions are deprecated. This PR updates the minimum Node version to 24.

Description

GitHub Actions is deprecating Node 20 runners on 2026-06-02. Three workflow files are still pinned to Node 20 and used checkout@v3 / setup-node@v3. Adopt the core of PR #1230 (by @DeoJin): update the matrix and version pins so CI runs on Node 22 and 24. Go further than #1230 on the action versions — jump actions/checkout and actions/setup-node to @v6 (latest) rather than @v4, since @v4 itself runs on Node 20 and would re-trip the same deprecation. @v5 is the floor (defaults to Node 24); @v6 is current.

Audited five additional workflows that carry actions/setup-python@v5 and actions/upload-artifact@v4; those action versions already bundle Node 24 binaries and require no changes.

Fixes/Closes

Fixes: #1221
Closes: #1230

Type of change

  • Project Maintenance (updates to build scripts, CI, etc., that do not affect the main project)

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration.

  • Integration Test

Checklist

  • I have signed the commit(s) within this pull request
  • My code follows the style guidelines of this project (See STYLE_GUIDE.md)
  • I have performed a self-review of my own code
  • I have commented my code
  • My changes generate no new warnings
  • New and existing unit tests pass locally with my changes
  • I have checked my code and corrected any misspellings

Maintainer Checklist

  • Confirmed all checks passed
  • Contributor has signed the commit(s)
  • Reviewed the code
  • Run, Tested, and Verified the change(s) work as expected

Screenshots/Gifs

N/A

Further comments

None

Copilot AI 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.

Pull request overview

This PR updates GitHub Actions workflows to avoid Node.js 20 deprecation by moving affected jobs to newer Node versions and newer action major versions.

Changes:

  • Bump TypeScript client CI and publish workflows from Node 20.19.x to 24.x.
  • Update docs-checks Node matrix from [20, 22] to [22, 24].
  • Upgrade actions/checkout and actions/setup-node pins in the touched workflows to @v6.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
.github/workflows/ts-client-test.yml Moves ts-client test job to Node 24 and upgrades checkout/setup-node to v6.
.github/workflows/ts-client-publish.yml Moves ts-client publish job to Node 24 and upgrades checkout/setup-node to v6.
.github/workflows/docs-checks.yml Updates docs validation Node matrix to 22/24 and upgrades checkout/setup-node to v6.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/docs-checks.yml
GitHub Actions is deprecating Node 20 runners on 2026-06-02. This is a
repo-wide sweep to eliminate all Node-20-based JS action pins before the
cutover.

Scope:

- Bump node-version pins and matrix values off Node 20:
  - docs-checks.yml        matrix [20, 22] → [22, 24]
  - ts-client-test.yml     20.19.x → 24.x
  - ts-client-publish.yml  20.19.x → 24.x

- Bump every actions/checkout and actions/setup-node reference that was
  still at @V3 or @v4 up to @v6 (latest). @v4 runs on Node 20 and would
  re-trip the same deprecation warning; @v5 is the minimum safe pin
  (defaults to Node 24) and @v6 is the current release. Workflows touched:
  build-python, check-uvlockfile, docker-image, docs-checks,
  generate-openapi, installation-test, openclaw_plugin_publish, sbom,
  sync-platform-openapi, test-python-client-package, test-server-package,
  ts-client-publish, ts-client-test.

- Workflows already on @v5 (lint, pytest, pytest-integration) are left
  as-is; @v5 defaults to Node 24 and is not deprecation-affected.

- actions/setup-python@v5 and actions/upload-artifact@v4 were audited
  and need no change; those action versions already bundle Node 24
  binaries.

Adopts and completes the intent of PR MemMachine#1230 (by @DeoJin) which covered
only the first three files. Closing that PR in favor of this repo-wide
sweep; credit preserved via co-authorship.

Refs: MemMachine#1221
Closes: MemMachine#1230

Co-authored-by: DeoJin <deojin@users.noreply.github.com>
Signed-off-by: Steve Scargall <37674041+sscargal@users.noreply.github.com>
@sscargal sscargal force-pushed the chore/1221-node20-to-node24-workflows branch from a5fb84a to e56cd04 Compare April 14, 2026 18:12
@sscargal sscargal requested a review from Copilot April 17, 2026 17:59
@sscargal sscargal merged commit b64e417 into MemMachine:main Apr 17, 2026
45 checks passed
@sscargal sscargal deleted the chore/1221-node20-to-node24-workflows branch April 17, 2026 18:06

Copilot AI 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.

Pull request overview

Copilot reviewed 13 out of 13 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +28 to +33
uses: actions/checkout@v6

- name: Set up Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: '20.19.x'
node-version: '24.x'

Copilot AI Apr 17, 2026

Copy link

Choose a reason for hiding this comment

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

The PR description says the update should make CI run on Node 22 and 24, but this workflow now pins tests to only Node 24 (node-version: '24.x') with no matrix. If the intent is to keep TS client tests green on both versions, consider adding a strategy.matrix node-version of [22, 24] here (similar to docs-checks.yml) and wiring setup-node to ${{ matrix.node-version }}.

Copilot uses AI. Check for mistakes.
Comment on lines +25 to +30
uses: actions/checkout@v6

- name: Set up Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: '20.19.x'
node-version: '24.x'

Copilot AI Apr 17, 2026

Copy link

Choose a reason for hiding this comment

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

Optional but recommended: for supply-chain hardening, consider pinning third-party actions (e.g., actions/checkout, actions/setup-node) to a full commit SHA instead of only a major tag. This reduces exposure to a compromised tag moving unexpectedly; a common compromise is @<major> for convenience in low-risk repos, but for publish workflows in particular SHA pinning is typically preferred.

Copilot uses AI. Check for mistakes.
edwinyyyu pushed a commit to edwinyyyu/MemMachine that referenced this pull request Apr 20, 2026
chore: bump Node 20 → 24 across GitHub Actions workflows

GitHub Actions is deprecating Node 20 runners on 2026-06-02. This is a
repo-wide sweep to eliminate all Node-20-based JS action pins before the
cutover.

Scope:

- Bump node-version pins and matrix values off Node 20:
  - docs-checks.yml        matrix [20, 22] → [22, 24]
  - ts-client-test.yml     20.19.x → 24.x
  - ts-client-publish.yml  20.19.x → 24.x

- Bump every actions/checkout and actions/setup-node reference that was
  still at @V3 or @v4 up to @v6 (latest). @v4 runs on Node 20 and would
  re-trip the same deprecation warning; @v5 is the minimum safe pin
  (defaults to Node 24) and @v6 is the current release. Workflows touched:
  build-python, check-uvlockfile, docker-image, docs-checks,
  generate-openapi, installation-test, openclaw_plugin_publish, sbom,
  sync-platform-openapi, test-python-client-package, test-server-package,
  ts-client-publish, ts-client-test.

- Workflows already on @v5 (lint, pytest, pytest-integration) are left
  as-is; @v5 defaults to Node 24 and is not deprecation-affected.

- actions/setup-python@v5 and actions/upload-artifact@v4 were audited
  and need no change; those action versions already bundle Node 24
  binaries.

Adopts and completes the intent of PR MemMachine#1230 (by @DeoJin) which covered
only the first three files. Closing that PR in favor of this repo-wide
sweep; credit preserved via co-authorship.

Refs: MemMachine#1221
Closes: MemMachine#1230

Signed-off-by: Steve Scargall <37674041+sscargal@users.noreply.github.com>
Co-authored-by: DeoJin <deojin@users.noreply.github.com>
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.

[Chore]: Move GitHub Actions Node 20 jobs to Node 24 before June 2nd, 2026. Node 20 is being EOL'd.

2 participants