Skip to content

ci(deps): upgrade cache actions to Node.js 24 - #11353

Merged
cv merged 5 commits into
mainfrom
codex/upgrade-node20-actions
Sep 10, 2026
Merged

ci(deps): upgrade cache actions to Node.js 24#11353
cv merged 5 commits into
mainfrom
codex/upgrade-node20-actions

Conversation

@cv

@cv cv commented Sep 10, 2026

Copy link
Copy Markdown
Collaborator

Outcome

CI selects cache restore/save actions that declare Node.js 24. All five pins move from v4.2.4 to v6.1.0, and the existing managed-image workflow test expects the new pins.

Reason

GitHub warns that the pinned v4.2.4 actions target deprecated Node.js 20 and are being forced to run on Node.js 24.

Changes

  • Pin three actions/cache/restore calls and two actions/cache/save calls to v6.1.0 (55cc8345863c7cc4c66a329aec7e433d2d1c52a9) in ci-compile-artifacts and ci-reviewed-npm-audit.
  • Update the three exact-pin assertions in the reviewed audit workflow test, retaining its cache identity and trusted-write checks.
  • Audit all external actions under .github, including transitive composite actions and the reusable workflow. Across 34 unique references, cache restore/save were the only actions declaring Node.js 20.
  • Consume the merged CLI type-check heap fix from ci(typecheck): give CLI type checking a 5 GiB heap #11356. The PR diff remains the two cache actions and their test expectations.

Verification

  • npx vitest run --project integration test/automation/pull-requests/compiled-artifact.test.ts test/automation/pull-requests/pr-workflow-contract.test.ts test/automation/releases/reviewed-npm-audit-cache-key.test.ts test/automation/releases/reviewed-npm-audit-workflow.test.ts test/inference/managed/managed-image-publication-workflow.test.ts — 133 tests passed across five files. The managed-image workflow file reproduced the stale-pin failure before repair and passes afterward.
  • npm run validate:pr — passed against canonical base 270275f2a2b31a70fa72692d2ec304b5dffe8ee3 after verifying the validation surface and resolved validator identities.
  • Authenticated upstream audit — verified the v6.1.0 tag and distributed restore/save entry points, both declaring node24. Upstream build, distribution, and Linux/macOS/Windows restore/save checks passed for the pinned commit.
  • Compatibility review — v5 requires runner 2.327.1 or newer; affected callers already use Node.js 24 actions. v6 includes ESM module metadata, and v6.1 keeps denied cache saves nonfatal. Cache keys, paths, hit/miss handling, and audit trust boundaries remain compatible.
  • Candidate action audit — no reachable action manifest declares Node.js 20. No old cache SHA remains in .github or test.
  • git diff --check and hook secret scans — passed. The diff contains no secrets, API keys, or credentials.

Review notes

Self-reviewed NVIDIA/NemoClaw commit dfd169efa1d95103879d2fc2be33a41d922ee117 and its three-file diff against canonical base 270275f2a2b31a70fa72692d2ec304b5dffe8ee3. The sensitive paths are .github/actions/ci-compile-artifacts/action.yaml and .github/actions/ci-reviewed-npm-audit/action.yaml; review checked the upstream manifests, cache consumers, and trust assertions. No actionable finding remains in the local repair.

CodeRabbit completed review through dfd169efa1d95103879d2fc2be33a41d922ee117 with no actionable comments. All nine Advisor specialists completed successfully, and their full Markdown reports were read. Eight reported no findings. The verification specialist suggested adding exact-SHA assertions for the compiled-artifact cache actions; this is advisory and was not adopted because it would duplicate the dependency pin without testing behavior. The existing cache hit/miss and artifact-integrity tests plus the authenticated upstream action audit remain the evidence for that change.

PR CI loads these composite actions from its base commit, so it can still emit the old cache warning until this change merges. Execution of the new pins in NemoClaw remains a post-merge validation step.

Remaining CI failure: missing shared-module build

The required PR CI run passed for dfd169efa1d95103879d2fc2be33a41d922ee117, including build/type-check and all CLI shards.

The remaining managed-image-openclaw-security failure occurs during test collection: Cannot find module '../../nemoclaw/dist/shared/sandbox-name.cjs'. The job installs root dependencies with --ignore-scripts and does not build the shared modules imported by its fixture chain. It does not invoke either cache composite action changed by this PR.

Reproduced the same failure on a clean archive of the PR base 270275f2a2b31a70fa72692d2ec304b5dffe8ee3 using Node.js 22.23.1 and the locked root dependencies. vitest list --project integration test/e2e-runtime/managed-image-openclaw-security.test.ts exited 1 before npm run build:policy-boundary and exited 0 afterward. With NEMOCLAW_TEST_IMAGE set, it registers the security test. This verifies the collection prerequisite; the Docker assertions were not run locally.

The minimal separate repair is to run npm run build:policy-boundary after dependency installation in the managed-image-openclaw-security jobs in .github/workflows/pr-self-hosted.yaml and .github/workflows/sandbox-images.yaml. Both jobs and the affected source/configuration are unchanged from the recorded base and remain unchanged on current canonical main. This inherited failure has no waiver.


Signed-off-by: Carlos Villela cvillela@nvidia.com

Summary by CodeRabbit

  • Chores
    • Updated automated build and security workflows to use the latest cache action version.
    • Existing cache keys, paths, conditions, and workflow behavior remain unchanged.
    • Updated related workflow test references to remain aligned with the current cache action configuration.
    • No changes were made to product functionality or public interfaces.

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
@cv cv self-assigned this Sep 10, 2026
@copy-pr-bot

copy-pr-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@coderabbitai

coderabbitai Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: a3b42aed-b666-4c5a-96c5-f860ec7ebf37

📥 Commits

Reviewing files that changed from the base of the PR and between bc49b2b and dfd169e.

📒 Files selected for processing (1)
  • test/inference/managed/managed-image-publication-workflow.test.ts

Included review availability: Your plan provides up to 12 included reviews per hour; 10 remain after this review.


📝 Walkthrough

Walkthrough

The pull request updates GitHub Actions cache restore and save references from v4.2.4 to v6.1.0 in compiled artifact and reviewed npm audit workflows. It also updates matching workflow test expectations.

Changes

GitHub Actions cache upgrade

Layer / File(s) Summary
Update cache action versions
.github/actions/ci-compile-artifacts/action.yaml, .github/actions/ci-reviewed-npm-audit/action.yaml, test/inference/managed/managed-image-publication-workflow.test.ts
Cache restore and save steps now use actions/cache v6.1.0. The workflow test expects the updated pinned references. Cache keys, paths, conditions, and workflow behavior remain unchanged.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Suggested reviewers: prekshivyas, sandl99, senthilr-nv

Merge Risk: ⚪ Minimal · up to 27642

This updates the pinned GitHub cache actions used by compiled-artifact and npm-audit CI workflows while retaining matching workflow expectations. No merge-blocking risk is identified.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely identifies the main change: upgrading the cache actions to versions that use Node.js 24.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/upgrade-node20-actions

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

@github-code-quality

github-code-quality Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall line coverage in commit 276422a in the codex/upgrade-node20... branch remains at 96%, unchanged from commit f6cfef3 in the main branch.

TypeScript / code-coverage/cli

The overall line coverage in commit 276422a in the codex/upgrade-node20... branch remains at 83%, unchanged from commit f6cfef3 in the main branch.


Updated September 10, 2026 09:18 UTC

cv added a commit that referenced this pull request Sep 10, 2026
## Outcome

The shared CLI and test type-check step receives a 5 GiB JavaScript
heap. This gives the current TypeScript program enough memory to finish
instead of aborting near the default 4 GiB limit.

## Reason

The [build-typecheck job on
#11353](https://github.com/NVIDIA/NemoClaw/actions/runs/34424271617/job/102706461224)
passed all 1,299 package-contract tests, then aborted during `npm run
typecheck:cli` with `JavaScript heap out of memory` and exit 134.

## Changes

Set `NODE_OPTIONS: --max-old-space-size=5120` on `Typecheck CLI + tests`
in `.github/actions/ci-build-typecheck/action.yaml`. Both PR and main CI
use this shared action. The value matches the existing CLI heap
remediation in `scripts/dev-setup.sh`.

## Verification

- Node.js 22.23.1 reproduction on the original failing compiler inputs:
`--max-old-space-size=4096` reproduced exit 134;
`--max-old-space-size=5120` passed and reported `Memory used: 4356061K`.
- Executed the changed YAML step's command and environment under Node.js
22.23.1 on this branch — `npm run typecheck:cli` passed.
- `npx vitest run --project integration
test/automation/pull-requests/pr-workflow-contract.test.ts` — all 44
tests passed.
- `npm run validate:pr` — passed against canonical base
`a4265abfc2e46922100baff0ba8f5985b681cf69`, with unchanged local
validator sources and executables.
- `git diff --check` and secret scans — passed. The diff contains no
secrets, API keys, or credentials.

## Review notes

Self-reviewed NVIDIA/NemoClaw commit
`35bc9934af317cff2cdc0ea7da0310f64986676f` and the changed
`.github/actions/ci-build-typecheck/action.yaml` against both callers,
the existing setup remediation, and the executed type-check result. No
actionable finding. Independent review of this sensitive path is
pending; this PR is a draft.

PR CI loads this action from its base commit. This PR's CI can still
encounter the old heap limit until the shared action change lands on
`main`. The local execution above exercises the proposed setting
directly.

---
Signed-off-by: Carlos Villela <cvillela@nvidia.com>

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
@cv
cv marked this pull request as ready for review September 10, 2026 02:04
cv added 3 commits September 9, 2026 19:11
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
@cv
cv merged commit d8c87ad into main Sep 10, 2026
60 checks passed
@cv
cv deleted the codex/upgrade-node20-actions branch September 10, 2026 09:19
@github-actions

Copy link
Copy Markdown
Contributor

PR Review Advisor finished for commit 276422a. Include the Advisor findings in the complete PR feedback collection. Verify and group valid findings before repair.

All previous runs

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.

1 participant