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

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/
相关推荐
小兵张健6 小时前
价值1000的 AI 工作流:Codex 通用前端协作模式
前端·aigc·ai编程
sunny_7 小时前
面试踩大坑!同一段 Node.js 代码,CJS 和 ESM 的执行顺序居然是反的?!99% 的人都答错了
前端·面试·node.js
拉不动的猪7 小时前
移动端调试工具VConsole初始化时的加载阻塞问题
前端·javascript·微信小程序
ayqy贾杰9 小时前
Agent First Engineering
前端·vue.js·面试
IT_陈寒9 小时前
SpringBoot实战:5个让你的API性能翻倍的隐藏技巧
前端·人工智能·后端
iceiceiceice9 小时前
iOS PDF阅读器段评实现:如何从 PDFSelection 精准还原一个自然段
前端·人工智能·ios
大金乄9 小时前
封装一个vue2的elementUI 表格组件(包含表格编辑以及多级表头)
前端·javascript
葡萄城技术团队10 小时前
【性能优化篇】面对万行数据也不卡顿?揭秘协同服务器的“片段机制 (Fragments)”
前端
程序员阿峰10 小时前
2026前端必备:TensorFlow.js,浏览器里的AI引擎,不写Python也能玩转智能
前端
Jans10 小时前
Shipfe — Rust 写的前端静态部署工具:一条命令上线 + 零停机 + 可回滚 + 自动清理
前端