Skip to content

fix: upgrade actions/download-artifact from pinned v4.3.0 to v4

Placeholder Copilot requested to merge copilot/fix-artifact-download-error into main

actions/download-artifact@v4.3.0 uses the deprecated Node.js 20 runtime, causing artifact download failures (after 5 retries) in the release job of the "Build & Publish Linux Tentacle" workflow.

Change

  • .github/workflows/build-publish-linux-tentacle.yml: unpinned actions/download-artifact from v4.3.0 → v4 so it resolves to the latest v4.x patch, which migrates to Node.js 22 and includes improved download reliability.
- uses: actions/download-artifact@v4.3.0
+ uses: actions/download-artifact@v4
Original prompt

Problem

The "Build & Publish Linux Tentacle" workflow's release job is failing at the "Download all artifacts" step with:

Unable to download artifact(s): Unable to download and extract artifact: Artifact download failed after 5 retries.

There is also a deprecation warning:

Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/download-artifact@v4.3.0

Failing job: https://github.com/SolarifyDev/Squid/actions/runs/24385553581/job/71218643697

Root Cause

In .github/workflows/build-publish-linux-tentacle.yml, line 181, the actions/download-artifact action is pinned to v4.3.0, which uses the deprecated Node.js 20 runtime. This is causing artifact download failures.

Fix Required

In .github/workflows/build-publish-linux-tentacle.yml, update line 181:

      - name: Download all artifacts
-       uses: actions/download-artifact@v4.3.0
+       uses: actions/download-artifact@v4
        with:
          path: artifacts
          merge-multiple: true

Change the pinned @v4.3.0 to @v4 so it resolves to the latest v4.x release which includes Node.js compatibility fixes and improved artifact download reliability.

The following is the prior conversation context from the user's chat exploration (may be truncated):

User: Please find a solution for this failing job. Use the logs, job definition, and any referenced files where the failure occurred. Keep your response focused on the solution and include code suggestions when appropriate.

Assistant:

I'll start by fetching the job logs and the workflow definition to understand the failure.

Assistant:

Failing Job Analysis

The job is failing in the release step at the "Download all artifacts" step with this error:

Unable to download artifact(s): Unable to download and extract artifact: Artifact download failed after 5 retries.

There's also a deprecation warning:

Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/download-artifact@v4.3.0


Root Cause

The actions/download-artifact@v4.3.0 version uses Node.js 20, which is deprecated and may be causing compatibility issues with the current runner environment. The artifact download is failing intermittently after retries, which is a known issue with older versions of this action.


Solution

Upgrade actions/download-artifact to the latest v4 release (v4.3.0 → v4.4.0 or later), which includes Node.js 20 → 22 migration and improved download reliability. You should also upgrade actions/upload-artifact for consistency.

In .github/workflows/build-publish-linux-tentacle.yml, make these changes:

1. Update the download-artifact action (line 181)

      - name: Download all artifacts
-       uses: actions/download-artifact@v4.3.0
+       uses: actions/download-artifact@v4
        with:
          path: artifacts
          merge-multiple: true

2. Update the upload-artifact action (line 169) for consistency

      - name: Upload artifact
-       uses: actions/upload-artifact@v4
+       uses: actions/upload-artifact@v4
        with:
          name: squid-tentacle-${{ matrix.rid }}
          path: dist/squid-tentacle-*${{ matrix.rid }}.tar.gz

(The upload action is already using @v4 which resolves to latest, so it's fine.)

3. Optional: Add retry logic for resilience

If you want extra robustness against transient download failures, you can add a retry wrapper:

      - name: Download all artifacts
        uses: actions/download-artifact@v4
        with:
          path: artifacts
          merge-multiple: true
          retry-on-error: true

Summary

The primary fix is upgrading actions/download-artifact from the pinned v4.3.0 to v4 (latest). The pinned v4.3.0 uses deprecated Node.js 20 and has known reliability issues with artifact downloads. Using @v4 ensures you automatically get the latest patch with bug fixes, Node.js compatibility updates, and improved retry handling.

User: 处理了吗,帮我修改好。

Assistant: 我已经启动了一个 Copilot coding agent 来为你创建 PR,正在等待你确认授权以继续执行。

This pull request was created from Copilot chat.

Merge request reports

Loading