Bump the GitHub workflow actions off deprecated Node 20

GitHub now forces actions/checkout@v4, actions/upload-artifact@v4 and
actions/download-artifact@v4 (all Node 20) onto Node 24 with a deprecation
warning. Move them to the current Node 24 majors — checkout@v5,
upload-artifact@v7, download-artifact@v8 — which keep the same inputs and the
per-artifact subdirectory layout (merge-multiple defaults to false), so the
publish step is unchanged.

Only the .github workflow is touched. The .gitea workflow stays on
checkout@v4 and the @v3 artifact actions, because Gitea does not support the v4+
artifact backend and may not have Node 24 on its runner image; it also does not
emit these deprecation warnings. mlugg/setup-zig has no Node 24 release yet
(latest v2.2.1 is still Node 20), so that one warning remains until upstream
updates — nothing to change on our side.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
UltradesuandClaude Opus 4.8 committed 2026-10-02 14:01:33 +01:00
1 parent 63178574ce
commit 66ccd704b8
1 file changed
+10 -9
+10 -9
View File
@@ -2,13 +2,14 @@ name: Release
# GitHub version of the release pipeline. The build half mirrors the Gitea one # GitHub version of the release pipeline. The build half mirrors the Gitea one
# in .gitea/workflows/release.yml (static musl Linux via cargo-zigbuild, native # in .gitea/workflows/release.yml (static musl Linux via cargo-zigbuild, native
# macOS and Windows); only the publish half differs: GitHub needs the v4 # macOS and Windows); only the publish half differs: it uses the current
# artifact backend and fills the release with `gh`. # artifact actions (Node 24) and fills the release with `gh`.
# #
# Every job is gated on `github.server_url == 'https://github.com'`, so this file # Every job is gated on `github.server_url == 'https://github.com'`, so this file
# runs only on GitHub. Gitea runs its own copy in .gitea/workflows; should a # runs only on GitHub. Gitea runs its own copy in .gitea/workflows (which pins
# Gitea instance also read .github/workflows, the guard skips these jobs there # the older @v3 artifact actions it supports); should a Gitea instance also read
# so they never fail on the @v4 artifact backend or `gh`. # .github/workflows, the guard skips these jobs there so they never fail on the
# artifact backend or `gh`.
on: on:
push: push:
tags: ["v*"] tags: ["v*"]
@@ -57,7 +58,7 @@ jobs:
zig: false zig: false
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable - uses: dtolnay/rust-toolchain@stable
with: with:
@@ -173,7 +174,7 @@ jobs:
"tsunagi-${pkgver}-1-${{ matrix.pkg_arch }}.pkg.tar.zst" "tsunagi-${pkgver}-1-${{ matrix.pkg_arch }}.pkg.tar.zst"
- name: Upload the build outputs as run artifacts - name: Upload the build outputs as run artifacts
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v7
with: with:
name: ${{ matrix.asset }} name: ${{ matrix.asset }}
path: | path: |
@@ -191,7 +192,7 @@ jobs:
contents: write contents: write
steps: steps:
- name: Download every build artifact - name: Download every build artifact
uses: actions/download-artifact@v4 uses: actions/download-artifact@v8
with: with:
path: artifacts path: artifacts
@@ -206,7 +207,7 @@ jobs:
run: | run: |
set -euo pipefail set -euo pipefail
# download-artifact@v4 nests each artifact under its own directory, so # download-artifact nests each artifact under its own directory, so
# the archives are artifacts/<asset>/<file>. # the archives are artifacts/<asset>/<file>.
mapfile -t files < <(find artifacts -type f \( -name '*.tar.gz' -o -name '*.zip' -o -name '*.deb' -o -name '*.pkg.tar.zst' \)) mapfile -t files < <(find artifacts -type f \( -name '*.tar.gz' -o -name '*.zip' -o -name '*.deb' -o -name '*.pkg.tar.zst' \))
printf 'asset: %s\n' "${files[@]}" printf 'asset: %s\n' "${files[@]}"