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 片段大致如下(简化版):
yaml
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报错

根本原因
actions/upload-artifact@v3
版本已经被 GitHub 官方废弃。
解决办法
将工作流中所有使用 actions/upload-artifact@v3
的地方升级到最新推荐的稳定版本 actions/upload-artifact@v4
yaml
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/