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/
相关推荐
Luna-player36 分钟前
npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本,解决方法
前端·npm·node.js
悢七37 分钟前
windows npm打包无问题,但linux npm打包后部分样式缺失
linux·前端·npm
Felicity_Gao1 小时前
uni-app App升级功能实现
前端·学习·uni-app
CS Beginner1 小时前
【搭建】个人博客网站的搭建
java·前端·学习·servlet·log4j·mybatis
老程序员刘飞2 小时前
node.js 和npm 搭建项目基本流程
前端·npm·node.js
歪歪1003 小时前
在C#中除了按属性排序,集合可视化器还有哪些辅助筛选的方法?
开发语言·前端·ide·c#·visual studio
wangbing11253 小时前
开发指南139-VUE里的高级糖块
前端·javascript·vue.js
半桶水专家3 小时前
Vue 3 动态组件详解
前端·javascript·vue.js
csj503 小时前
前端基础之《React(6)—webpack简介-图片模块处理》
前端·react
我有一棵树3 小时前
避免 JS 报错阻塞 Vue 组件渲染:以 window.jsbridge 和 el-tooltip 为例
前端·javascript·vue.js