Repository navigation
Move the release workflow onto actions that still run - #21
Merged
Merged
Conversation
Every action the release used targets Node 20, which GitHub has deprecated. The runners are already forcing them onto Node 24 and saying so in an annotation on each run; when the forcing stops, the release stops with it. checkout v4 to v7, upload-artifact v4 to v7, setup-msbuild v2 to v3 and setup-nuget v2 to v4. Each of those is the current major and each declares node24, which is the point of the change rather than the version numbers themselves. Every input the workflow passes - fetch-depth on the checkout, and name, path and retention-days on the upload - is still an input on the new majors, so nothing else in the file had to move. This cannot be exercised from a branch: the workflow refuses to run anywhere but master, and it refuses before it reaches the first of these actions. It is worth a run against a throwaway version once it is on master, with the draft that produces deleted afterwards. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0153VVkWg7DQmdaNLcvtY37w
There was a problem hiding this comment.
🟢 Approval recommended
The changes are limited to action version bumps, and the referenced tags and required inputs still exist for the updated action majors.
Pull request overview
Updates the GitHub Actions release workflow to use newer major versions of its third-party actions so the workflow continues to run on supported GitHub-hosted runner Node runtimes (avoiding Node 20 deprecation fallout).
Changes:
- Bump
actions/checkoutfromv4tov7. - Bump
microsoft/setup-msbuildfromv2tov3andNuGet/setup-nugetfromv2tov4. - Bump
actions/upload-artifactfromv4tov7.
File summaries
| File | Description |
|---|---|
| .github/workflows/release.yml | Updates action uses: pins to newer majors intended to run on current runner Node runtimes while keeping existing inputs unchanged. |
Review details
- Files reviewed: 1/1 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Every action the release workflow uses targets Node 20, which GitHub has deprecated. The runners are already forcing them onto Node 24 and annotating each run to say so — the v1.0.0 release run carried that annotation. When the forcing stops, the release stops with it, and the release workflow is the one thing you want working on the day you need it rather than the day you find out.
actions/checkoutactions/upload-artifactmicrosoft/setup-msbuildNuGet/setup-nugetWhat was checked
The version numbers are not the point — the runtime is. Each old pin and each new one was read from the action’s own
action.ymlat that ref:Reading
action.ymlat each new ref also proves the moving tag exists, so none of these is auses:that fails to resolve.Every input the workflow passes still exists on the new majors:
fetch-depthon the checkout, andname,pathandretention-dayson the upload. Nothing else in the file had to move — the diff is four lines.What was not checked, and why
The workflow was not run. It refuses to run anywhere but
master, and it refuses at the first step, before it reaches any of these actions — so a branch cannot exercise it. Once this is on master it is worth one run against a throwaway version to see the four actions resolve on a real runner, with the draft release that produces deleted afterwards. I can do that on request.The residual risk is behaviour rather than resolution: an action could have changed something between majors that this workflow depends on without passing it as an input.
upload-artifactis the one with history there, having made artifacts immutable — but that landed in v4, which is where this workflow already was, so v7 is the smaller half of that step.🤖 Generated with Claude Code
https://claude.ai/code/session_0153VVkWg7DQmdaNLcvtY37w