Skip to content

Move release.yml artifact steps off Node 20 actions - #2027

Merged
Mikola Lysenko (mikolalysenko) merged 1 commit into
mainfrom
ci-janitor/release-artifact-node24
Nov 6, 2026
Merged

Mikola Lysenko (mikolalysenko) merged 1 commit into
mainfrom
ci-janitor/release-artifact-node24

Conversation

@mikolalysenko

@mikolalysenko Mikola Lysenko (mikolalysenko) commented Nov 4, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes #1588.

Problem

#1588 tracks pinned actions that target the deprecated Node.js 20 runtime. Every workflow except one has since moved to Node 24 releases. release.yml still pins:

  • actions/upload-artifact@ea165f8… # v4 (2 uses, build job)
  • actions/download-artifact@d3f86a1… # v4 (1 use, github-release job)

GitHub forces these onto Node 24 for now. When it drops Node 20 action support, the release build and github-release jobs break at publish time. Release is the only workflow no PR or merge_group run exercises, so we'd find out mid-release (last run: 2026-10-13).

Fix

Pin the releases every other workflow already uses, at the same SHAs:

action before after already used in
upload-artifact ea165f8 v4 b7c566a v6.0.0 3 steps in ci.yml and compat workflows
download-artifact d3f86a1 v4 37930b1 v7.0.0 19 steps

Breaking changes I checked:

  • download-artifact v5+ changed the extraction path only when downloading by artifact ID. This step downloads every artifact of the run with path + merge-multiple: true, which ci.yml already does with v7.0.0 (lines 909, 2326).
  • upload-artifact v6 needs a v4+ downloader. After this PR every downloader in the repo is v7.

Proof

  • I checked the SHAs against the upstream tags with git ls-remote: refs/tags/v6.0.0 = b7c566a…, refs/tags/v7.0.0 = 37930b1….
  • After this PR, no workflow pins ea165f8 or d3f86a1.
  • The YAML parses. Pin check still passes: every uses: is a 40-char SHA.
  • No tests move or are removed.

Owner note: the release dry-run path (workflow_dispatch with dry-run: true) builds and uploads artifacts, so a dry run after merge would exercise the new upload pin end to end.

https://claude.ai/code/session_011f9aeR1h6tkiHFXbvuNbrv


Generated by Claude Code

release.yml was the last workflow still pinning upload-artifact and
download-artifact v4, which target the deprecated Node.js 20 runtime
(#1588). GitHub forces them onto Node 24 for now; when Node 20 action
support is removed, the release build and github-release jobs would
break at publish time, and release is the one workflow no PR exercises.

Pin the same releases every other workflow already uses:
upload-artifact v6.0.0 (b7c566a) and download-artifact v7.0.0
(37930b1). The download step lists every artifact of the run with
path + merge-multiple, which ci.yml already does with v7, and the
by-artifact-ID path change in v5 doesn't apply.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011f9aeR1h6tkiHFXbvuNbrv
@mikolalysenko Mikola Lysenko (mikolalysenko) added the ci-janitor Opened by the CI janitor routine (flakes, redundant tests, CI perf) label Nov 4, 2026
@mikolalysenko

Copy link
Copy Markdown
Collaborator Author

bugbot run


Generated by Claude Code

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 20ecb62. Configure here.

@mikolalysenko Mikola Lysenko (mikolalysenko) added the Ready for review Agent-verified: mergeable, CI green, Bugbot clean — awaiting human review label Nov 4, 2026
@mikolalysenko

Copy link
Copy Markdown
Collaborator Author

Ready for review at head 20ecb62fce038485b2c317cef3bf18895417aa5b.

  • CI: 51/51 checks settled green (32 success, 19 skipped). No main-wide failures.
  • Bugbot: reviewed this head, no findings.
  • Mergeable, no conflicts; CHANGELOG.md untouched.
  • Reviewer note: release.yml only runs at release time, so no PR run exercises these pins. A workflow_dispatch dry run after merge would exercise the new upload pin end to end.

Generated by Claude Code

@mikolalysenko

Copy link
Copy Markdown
Collaborator Author

Final review brief

What it does. release.yml was the last workflow still pinning actions/upload-artifact v4 and actions/download-artifact v4, which run on Node 20. This PR moves those three steps to the pins every other workflow already uses: upload v6.0.0 and download v7.0.0. Fixes #1588.

Risk: low. It changes three action pins and nothing else. The new SHAs are the ones ci.yml and the compat workflows already run. The one gap: no PR or merge_group run exercises release.yml, so CI does not test these steps.

Look here

  • release.yml:199 and :206: upload pins (tar.gz and zip)
  • release.yml:254: download with path + merge-multiple: true. v5+ changed extraction paths only for by-ID downloads, so this pattern is unaffected. ci.yml already uses it with v7.0.0.

Verified

  • git ls-remote: upload-artifact refs/tags/v6.0.0 = b7c566a…, download-artifact refs/tags/v7.0.0 = 37930b1…. Both match the PR.
  • No workflow on the head still pins ea165f8 or d3f86a1. Upload v6 and download v7 are both v4+ artifact backends, so they're compatible.
  • Diff is 1 file, 3 lines. CHANGELOG.md untouched. No unresolved threads.
  • CI 51/51 settled (32 success, 19 path-skipped). ci-ok and clippy green. Bugbot: no findings on 20ecb62.

Changes I made: none.

Open questions: none. Optional: after merge, run the release dry run (workflow_dispatch, dry-run: true) to exercise the new upload pin end to end.

Auto-merge is armed, so approving sends this straight to the merge queue.


Generated by Claude Code

@mikolalysenko

Copy link
Copy Markdown
Collaborator Author

Final reviewer: auto-merge request was armed and the PR approved, green and clean, but GitHub had not enqueued it. Re-armed auto-merge (disable + enable); it entered the merge queue at 20:49Z.


Generated by Claude Code

Merged via the queue into main with commit 101e0e1 Nov 6, 2026
51 checks passed
@mikolalysenko
Mikola Lysenko (mikolalysenko) deleted the ci-janitor/release-artifact-node24 branch November 6, 2026 20:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-janitor Opened by the CI janitor routine (flakes, redundant tests, CI perf) Ready for review Agent-verified: mergeable, CI green, Bugbot clean — awaiting human review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CI: pinned actions still target deprecated Node.js 20

3 participants