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

如何删除GitHub Actions运行时生成的临时工件?

清理GitHub Actions临时工件的方法

因为你的工件需要跨作业使用,所以要等所有依赖它的作业完成后,再执行清理步骤。下面是两种实用的实现方式:

方法一:使用官方删除动作(推荐)

GitHub官方维护了actions/delete-artifact动作,直接调用就能删除指定名称的工件,简单高效:

# 放在工作流的最后一个作业里(比如独立的cleanup作业,或者最后一个作业的末尾)
- name: 删除临时工件
  uses: actions/delete-artifact@v2
  with:
    name: setup  # 指定要删除的工件名称,和上传时的name一致

如果有多个临时工件,重复这个步骤即可,每个步骤指定不同的name。

方法二:通过GitHub API删除(适合批量或自定义场景)

如果需要批量删除或者更灵活的控制,可以调用GitHub的REST API来删除工件,需要用到默认的GITHUB_TOKEN(已具备删除权限):

- name: 通过API删除临时工件
  run: |
    # 获取目标工件的ID
    ARTIFACT_ID=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
      "https://api.github.com/repos/${{ github.repository }}/actions/runs/${{ github.run_id }}/artifacts" \
      | jq -r '.artifacts[] | select(.name == "setup") | .id')
    # 如果找到ID就执行删除
    if [ -n "$ARTIFACT_ID" ]; then
      curl -X DELETE -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
        "https://api.github.com/repos/${{ github.repository }}/actions/artifacts/$ARTIFACT_ID"
    fi
  shell: bash

注意事项

  • 一定要把清理步骤放在所有需要该工件的作业之后,比如可以创建一个专门的cleanup作业,通过needs参数依赖前面的作业:
    jobs:
      build:
        # 你的构建、上传工件作业
      test:
        needs: build
        # 下载工件、执行测试的作业
      cleanup:
        needs: test
        runs-on: ubuntu-latest
        steps:
          - name: 删除临时工件
            uses: actions/delete-artifact@v2
            with:
              name: setup
    
  • 如果你使用的是GitHub托管的运行器,jq工具默认已经安装,无需额外配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 04:55:21