8000
Skip to content

Upgrade GitHub Actions for Node 24 compatibility#853

Merged
tonychang04 merged 1 commit intoInsForge:mainfrom
salmanmkc:upgrade-github-actions-node24
Mar 13, 2026
Merged

Upgrade GitHub Actions for Node 24 compatibility#853
tonychang04 merged 1 commit intoInsForge:mainfrom
salmanmkc:upgrade-github-actions-node24

Conversation

@salmanmkc
Copy link
Copy Markdown
Contributor
@salmanmkc salmanmkc commented Mar 13, 2026

Warning

You may currently be seeing a warning like this in your workflow runs:

Node.js 20 actions are deprecated. The following actions are running on Node.js 20
and may not work as expected: actions/checkout@v4, actions/setup-node@v4.
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.
For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/

The exact actions listed will vary per workflow.

Upgrades GitHub Actions to versions that support Node 24, since Node 20 is reaching EOL in April 2026.

Changes

Action Old Version(s) New Version Compare Files
actions/checkout v4 v6 Diff build-image.yml, ci-premerge-check.yml, e2e.yml, lint-and-format.yml, unit-tests.yml
actions/setup-node v4 v6 Diff lint-and-format.yml, unit-tests.yml

Context

Per GitHub's announcement, Node 20 is being deprecated and runners will default to Node 24 starting June 2nd, 2026.

  • Node 20 EOL: April 2026
  • Node 24 becomes default: June 2nd, 2026

Release Notes

Release notes for actions/checkout

v6.0.2

What's Changed

Full Changelog: actions/checkout@v6.0.1...v6.0.2

v6.0.1

What's Changed

Full Changelog: actions/checkout@v6...v6.0.1

v6.0.0

What's Changed

Full Changelog: https://github.com/actions/checkout/compare/v5.0.

...truncated

v5.0.1

What's Changed

Full Changelog: actions/checkout@v5...v5.0.1

v4.3.1

What's Changed

Full Changelog: actions/checkout@v4...v4.3.1

Release notes for actions/setup-node

v6.3.0

What's Changed

Enhancements:

When usingΒ node-version-file: package.json, setup-node now prefersΒ devEngines.runtimeΒ overΒ engines.node.

Dependency updates:

...truncated

v6.2.0

What's Changed

Documentation

...truncated

v6.1.0

What's Changed

Enhancement:

Dependency updates:

...truncated

v6.0.0

What's Changed

Breaking Changes

Dependency Upgrades

  • Upgrade ts-jest from 29.1.2 to 29.4.1 and document breaking changes in v5 by @dependabot[bot] in #1336
  • Upgrade prettier from 2.8.8 to 3.6.2 by @dependabot[bot] in #1334
  • Upgrade

...truncated

v5.0.0

What's Changed

Breaking Changes

This update, introduces automatic caching when a valid packageManager field is present in your package.json. This aims to improve workflow performance and make dependency management more seamless.
To disable this automatic caching, set package-manager-cache: false

steps:
- uses: actions/chec

*...truncated*

</details>

## Notes

Worth running the workflows on a branch before merging to make sure everything still works.

## Validation Warnings

The following issues were detected by [actionlint](https://github.com/rhysd/actionlint):

- `build-image.yml: .github/workflows/build-image.yml:103:9: shellcheck reported issue in this script: SC2086:info:4:12: Double quote to prevent globbing and word splitting [shellcheck]`
- `build-image.yml: |`
- `build-image.yml: 103 |         run: |`


<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

* **Chores**
  * Updated CI/CD workflow infrastructure dependencies to newer versions for improved stability and security.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: Salman Muin Kayser Chishti <13schishti@gmail.com>
@coderabbitai
Copy link
Copy Markdown
Contributor
coderabbitai bot commented Mar 13, 2026

Walkthrough

GitHub Actions dependencies are upgraded across five workflow files. The checkout action is bumped from v4 to v6 in all workflows; the setup-node action is additionally upgraded from v4 to v6 in two workflows. No workflow logic or step sequences are altered.

Changes

Cohort / File(s) Summary
GitHub Actions version upgrades
.github/workflows/build-image.yml, .github/workflows/ci-premerge-check.yml, .github/workflows/e2e.yml, .github/workflows/lint-and-format.yml, .github/workflows/unit-tests.yml
Checkout action bumped from v4 to v6 across all workflows. Setup-node action additionally upgraded from v4 to v6 in lint-and-format.yml and unit-tests.yml. No changes to workflow logic or step sequences.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Poem

🐰 Workflows dance with actions new,
From version four to version two-and-six they flew,
Checkout and node step right in line,
Dependencies freshβ€”everything fine! ✨

πŸš₯ Pre-merge checks | βœ… 3
βœ… Passed checks (3 passed)
Check name Status Explanation
Description Check βœ… Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check βœ… Passed The title directly relates to the main change: upgrading GitHub Actions versions for Node 24 compatibility, which is the core objective of this PR.
Docstring Coverage βœ… Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
πŸ§ͺ Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
πŸ“ Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❀️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Tip

CodeRabbit can generate a title for your PR based on the changes with custom instructions.

Set the reviews.auto_title_instructions setting to generate a title for your PR based on the changes in the PR with custom instructions.

Copy link
Copy Markdown
Contributor
@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
.github/workflows/build-image.yml (1)

103-107: Quote shell variables to prevent word splitting (SC2086).

The actionlint validation detected shellcheck SC2086 at line 103. While the values are unlikely to contain spaces, quoting the variables follows best practices and silences the warning.

πŸ”§ Proposed fix
        run: |
          # Convert GHCR image name to lowercase (Docker requires lowercase)
          GHCR_IMAGE=$(echo "${GHCR_IMAGE_RAW}" | tr '[:upper:]' '[:lower:]')
          # Copy multi-arch image from GHCR to ECR (preserves all platforms)
-          crane copy ${GHCR_IMAGE}:${VERSION} ${ECR_IMAGE}:${VERSION}
+          crane copy "${GHCR_IMAGE}:${VERSION}" "${ECR_IMAGE}:${VERSION}"
πŸ€– Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/build-image.yml around lines 103 - 107, The shell step
uses unquoted variables which can cause word-splitting (SC2086); update the
assignments and the crane invocation to quote the variables: when creating
GHCR_IMAGE use echo "${GHCR_IMAGE_RAW}" | tr ... to build GHCR_IMAGE, and call
crane copy with the quoted image refs (e.g. crane copy
"${GHCR_IMAGE}:${VERSION}" "${ECR_IMAGE}:${VERSION}") so GHCR_IMAGE,
GHCR_IMAGE_RAW, VERSION and ECR_IMAGE are all properly quoted.
πŸ€– Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In @.github/workflows/build-image.yml:
- Around line 103-107: The shell step uses unquoted variables which can cause
word-splitting (SC2086); update the assignments and the crane invocation to
quote the variables: when creating GHCR_IMAGE use echo "${GHCR_IMAGE_RAW}" | tr
... to build GHCR_IMAGE, and call crane copy with the quoted image refs (e.g.
crane copy "${GHCR_IMAGE}:${VERSION}" "${ECR_IMAGE}:${VERSION}") so GHCR_IMAGE,
GHCR_IMAGE_RAW, VERSION and ECR_IMAGE are all properly quoted.

ℹ️ Review info
βš™οΈ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 607b4d4d-26a7-4cfc-86a2-99b65038faac

πŸ“₯ Commits

Reviewing files that changed from the base of the PR and between 03c6aa2 and 5a3fd44.

πŸ“’ Files selected for processing (5)
  • .github/workflows/build-image.yml
  • .github/workflows/ci-premerge-check.yml
  • .github/workflows/e2e.yml
  • .github/workflows/lint-and-format.yml
  • .github/workflows/unit-tests.yml

@tonychang04 tonychang04 self-requested a review March 13, 2026 16:15
@tonychang04 tonychang04 merged commit 5e2ebee into InsForge:main Mar 13, 2026
5 checks passed
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.

2 participants

0