GitHub Actions 排错实录:actions/upload-artifact@v3 导致工作流失败及解决方案

252 阅读2分钟

GitHub Actions 排错实录:actions/upload-artifact@v3 导致工作流失败及解决方案

前言

在进行 Vue 3 组件库的模拟实现项目 toy-element 过程中,我利用 GitHub Actions 搭建了 CI/CD 工作流,期望实现自动化测试和部署。然而,在首次推送代码并触发 Workflow 后,我遇到了一个棘手的问题:GitHub Actions 工作流中用于上传构建产物的 actions/upload-artifact@v3 步骤总是失败,导致整个工作流无法顺利完成。

本文将详细记录这个问题的排查过程、根本原因以及最终的解决方案,希望能为遇到类似问题的朋友提供一些帮助。

问题现象

我的 GitHub Actions 工作流 test-and-deploy.yaml 在执行到某个 Job 的 actions/upload-artifact@v3 步骤时,总是抛出错误并失败。具体的错误信息可能因日志细节而异,但核心都指向 upload-artifact 无法正常工作。

当时的 Workflow 片段大致如下(简化版):

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Install dependencies
        run: pnpm install --frozen-lockfile # 确保使用 pnpm

      - name: Run tests
        run: pnpm run test

      # 出现问题的步骤
      - name: Upload artifacts
        uses: actions/upload-artifact@v3 # 罪魁祸首
        with:
          name: my-app-build
          path: dist/ # 假设我的构建产物在 dist 目录

github action报错

5a5099e0d1fdbeb2dfd7a93d5c1c317.png

根本原因

actions/upload-artifact@v3 版本已经被 GitHub 官方废弃

解决办法

将工作流中所有使用 actions/upload-artifact@v3 的地方升级到最新推荐的稳定版本 actions/upload-artifact@v4

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
      # ... 其他步骤

      - name: Upload artifacts
        uses: actions/upload-artifact@v4 # 将 @v3 更改为 @v4
        with:
          name: my-app-build
          path: dist/