You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Actions中delete-artifact@v1删除构件失败问题排查

问题:GitHub Actions构件删除步骤触发404错误导致流水线失败

近期Azure/GitHub Actions部署流水线在构件部署后执行删除操作时失败,错误日志如下:

Run geekyeggo/delete-artifact@v1
  with:
    name: net-app
    failOnError: true
  env:
    AZURE_HTTP_USER_AGENT: 
Failed to list artifacts; status code 404
Error: Failed to load artifacts; debug logs may be available.

工作流脚本数月未修改,此前该步骤仅输出警告:Warning: Unable to delete artifact "net-app"; the artifact was not found.,如今直接触发错误导致流水线终止。

当前工作流逻辑:build-net-app任务上传名为net-app的构件,deploy-net-app任务下载后部署至Azure Web App,最后调用delete-artifact@v1删除该构件,但构件未被自动删除,且删除步骤报错。

原因分析

  1. Action版本兼容性问题:当前使用的geekyeggo/delete-artifact@v1是旧版本,而构件上传/下载使用的是actions/upload-artifact@v4/actions/download-artifact@v4。GitHub的Artifact API在后续版本中存在更新,旧版本的delete-artifact无法适配新API,导致列表构件时返回404错误。
  2. 错误处理逻辑变更:旧版本delete-artifact在找不到构件时仅输出警告,但GitHub侧或action内部的逻辑变更,结合failOnError: true的配置,直接触发流水线失败。

修复方案

方案1:升级delete-artifact至最新版本

将删除步骤的action版本从v1升级到最新稳定版(当前为v5),新版本适配GitHub最新的Artifact API,能正确识别并删除构件。修改后的删除步骤如下:

- name: Delete artifact
  uses: geekyeggo/delete-artifact@v5
  with:
    name: net-app
    failOnError: true

方案2:调整错误处理策略(临时缓解)

如果暂时无法升级action版本,可将failOnError设为false,这样即使找不到构件也只会输出警告,不会终止流水线。但此方案无法解决构件无法删除的核心问题:

- name: Delete artifact
  uses: geekyeggo/delete-artifact@v1
  with:
    name: net-app
    failOnError: false

额外检查:构件名称一致性

虽然当前上传和删除的构件名称均为net-app,但build-net-app任务中定义了环境变量ArtifactName: net-app-${{ github.run_number }}却未使用,若后续需要按运行编号区分构件,需统一上传和删除步骤的构件名称,避免出现名称不匹配的问题。

内容的提问来源于stack exchange,提问作者Lucas Rappette

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 20:53:17