ci: bump actions to node24 to clear deprecation warnings#2273
Conversation
GitHub Actions is forcing node20 actions to node24 by default on 2026-06-02 and removing node20 from the runner on 2026-09-16. Three actions in setup-build-environment were still on node20: - ilammy/msvc-dev-cmd@v1 → TheMrMilchmann/setup-msvc-dev@v4.0.0 - lukka/run-vcpkg@v11.5 → lukka/run-vcpkg@v11.6 - actions/cache@v4 → actions/cache@v5 Notes on the MSVC swap: TheMrMilchmann/setup-msvc-dev has no `vsversion` input. The preceding step installs only VS Build Tools 2026, so the action's default detection picks it up. `arch: x64` input is preserved. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
📝 WalkthroughWalkthroughThis PR updates GitHub Actions versions in the CI build environment setup: replaces the MSVC development environment action from ChangesBuild Environment CI Dependencies
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 YAMLlint (1.38.0).github/actions/setup-build-environment/action.yaml[Errno 2] No such file or directory: '.github/actions/setup-build-environment/action.yaml' 🔧 Checkov (3.2.525).github/actions/setup-build-environment/action.yaml2026-05-03 09:09:50,582 [MainThread ] [ERROR] Template file not found: .github/actions/setup-build-environment/action.yaml ... [truncated 9329 characters] ... /setup-build-environment/action.yaml Review rate limit: 9/10 reviews remaining, refill in 6 minutes. Comment |
|
No actionable suggestions for changed features. |
There was a problem hiding this comment.
🧹 Nitpick comments (2)
.github/actions/setup-build-environment/action.yaml (2)
53-53: Pin these action refs to immutable commit SHAs instead of tags.Tags like
v4.0.0,v11.6, andv5are mutable and can be reassigned. Using the resolved commit SHAs provides stronger supply-chain integrity:
- Line 53:
TheMrMilchmann/setup-msvc-dev@79dac248aac9d0059f86eae9d8b5bfab4e95e97c- Line 91:
lukka/run-vcpkg@b1a0dd252f06b9e25b3c022a9a03bd7a427fb6a2- Line 96:
actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/actions/setup-build-environment/action.yaml at line 53, Replace mutable action tags with the provided immutable commit SHAs: change TheMrMilchmann/setup-msvc-dev@v4.0.0 to TheMrMilchmann/setup-msvc-dev@79dac248aac9d0059f86eae9d8b5bfab4e95e97c, change lukka/run-vcpkg@v11.6 (or whatever tag is used) to lukka/run-vcpkg@b1a0dd252f06b9e25b3c022a9a03bd7a427fb6a2, and change actions/cache@v5 (or current tag) to actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae; update the three `uses:` entries accordingly so they reference the exact SHA for supply-chain integrity.
49-53: Add explicit validation that VS2026 was selected, not just captured.The
TheMrMilchmann/setup-msvc-dev@v4.0.0action (line 53) defaults to the latest Visual Studio instance when novs-pathinput is provided. Although the prior step installs VS Build Tools 2026, GitHub runners typically have multiple pre-installed VS versions. The subsequent "Get MSVC version" step (lines 57–88) only extracts the version number; it does not validate that the expected version was selected. Add a fail-fast check after the MSVC setup to confirm VS2026 was activated, or alternatively, use thevs-pathinput if the installer outputs a known installation directory.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/actions/setup-build-environment/action.yaml around lines 49 - 53, The workflow currently calls TheMrMilchmann/setup-msvc-dev@v4.0.0 but doesn't verify that VS2026 was actually selected; update the job to perform a fail-fast validation immediately after the setup step (the step labeled similar to "Get MSVC version") by either passing an explicit vs-path input to TheMrMilchmann/setup-msvc-dev@v4.0.0 (pointing to the known VS2026 install directory) or by adding a validation step that queries the active cl.exe or vswhere output (e.g., run "cl.exe /Bv" or use vswhere to get installationVersion) and assert the returned version string contains "17.6" or the known VS2026 identifier, and fail the job if it does not, so the workflow cannot continue with the wrong Visual Studio selection.
🤖 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/actions/setup-build-environment/action.yaml:
- Line 53: Replace mutable action tags with the provided immutable commit SHAs:
change TheMrMilchmann/setup-msvc-dev@v4.0.0 to
TheMrMilchmann/setup-msvc-dev@79dac248aac9d0059f86eae9d8b5bfab4e95e97c, change
lukka/run-vcpkg@v11.6 (or whatever tag is used) to
lukka/run-vcpkg@b1a0dd252f06b9e25b3c022a9a03bd7a427fb6a2, and change
actions/cache@v5 (or current tag) to
actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae; update the three `uses:`
entries accordingly so they reference the exact SHA for supply-chain integrity.
- Around line 49-53: The workflow currently calls
TheMrMilchmann/setup-msvc-dev@v4.0.0 but doesn't verify that VS2026 was actually
selected; update the job to perform a fail-fast validation immediately after the
setup step (the step labeled similar to "Get MSVC version") by either passing an
explicit vs-path input to TheMrMilchmann/setup-msvc-dev@v4.0.0 (pointing to the
known VS2026 install directory) or by adding a validation step that queries the
active cl.exe or vswhere output (e.g., run "cl.exe /Bv" or use vswhere to get
installationVersion) and assert the returned version string contains "17.6" or
the known VS2026 identifier, and fail the job if it does not, so the workflow
cannot continue with the wrong Visual Studio selection.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 1a04d95e-ec91-43b2-aab1-3de852ad98e0
📒 Files selected for processing (1)
.github/actions/setup-build-environment/action.yaml
|
✅ A pre-release build is available for this PR: |
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…haders#2273) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…haders#2273) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Summary
Clears the GitHub Actions node20 deprecation warnings in
.github/actions/setup-build-environment/action.yaml. node20 actions will be force-migrated to node24 on 2026-06-02 and node20 will be removed from the runner on 2026-09-16.ilammy/msvc-dev-cmd@v1(node20)TheMrMilchmann/setup-msvc-dev@v4.0.0(node24)lukka/run-vcpkg@v11.5(node20)@v11.6(node24)actions/cache@v4(node20)@v5(node20→node24)Notes on the MSVC swap
TheMrMilchmann/setup-msvc-dev@v4.0.0is API-compatible with the way we useilammy/msvc-dev-cmdexcept for one input: it has novsversion. We were passingvsversion: \"18.0\". That's safe to drop because the preceding step (Install Visual Studio Build Tools) installs only VS Build Tools 2026, so the action's default detection selects it.arch: x64is preserved.Test plan
setup-build-environment(cpp-build job in_shared-build.yaml); confirm:cl.exeis on PATH (theGet MSVC versionstep depends on it)🤖 Generated with Claude Code
Summary by CodeRabbit