chore: bump Node 20 → 24 in GitHub Actions workflows#1323
Conversation
There was a problem hiding this comment.
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.xto24.x. - Update
docs-checksNode matrix from[20, 22]to[22, 24]. - Upgrade
actions/checkoutandactions/setup-nodepins 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.
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>
a5fb84a to
e56cd04
Compare
There was a problem hiding this comment.
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.
| 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' |
There was a problem hiding this comment.
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 }}.
| 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' |
There was a problem hiding this comment.
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.
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>
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
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.
Checklist
Maintainer Checklist
Screenshots/Gifs
N/A
Further comments
None