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

如何从actions/upload-artifact@v3归档自动生成GitHub发布草稿及路径问题解决

问题1:unzip找不到文件的修复方案

你的核心错误是错误使用了actions/download-artifact@v2的path参数:该参数指定的是下载目标目录,不是文件路径。你把它设为${{ github.workspace }}/release_artifacts.zip,导致工具解析路径时出现异常,最终zip文件被存放在了workspace的上一级目录(/home/runner/work/relaymono/),而你在unzip时用了workspace的路径(/home/runner/work/relaymono/relaymono/),自然找不到文件。

修复步骤:

方案1:正确下载到目录(推荐)

修改download-artifact配置,指定目标目录而非文件名,工具会自动将artifact内容下载到该目录(无需手动解压):

- name: Download artifact
  uses: actions/download-artifact@v2
  with:
    name: release_artifacts
    path: ${{ github.workspace }}/release_artifacts

方案2:修正unzip路径(临时 workaround)

如果你坚持手动解压,需要调整unzip的路径指向实际文件位置:

- name: Extract artifacts for release upload
  run: |
    mkdir ${{ github.workspace }}/pkg
    ls ${{ github.workspace }}/../
    unzip ${{ github.workspace }}/../release_artifacts.zip -d ${{ github.workspace }}/pkg/

问题2:从artifact自动生成GitHub发布草稿

使用softprops/action-gh-release(比官方actions/create-release更灵活)可以一键创建发布草稿并上传artifact内容,结合修复后的下载流程,完整配置如下:

publish:
  runs-on: ubuntu-20.04
  needs: build
  steps:
    - name: Download artifact
      uses: actions/download-artifact@v2
      with:
        name: release_artifacts
        path: ${{ github.workspace }}/release_artifacts

    - name: Create Draft Release
      uses: softprops/action-gh-release@v1
      with:
        draft: true
        # 匹配release_artifacts目录下所有文件,可根据需求调整
        files: |
          ${{ github.workspace }}/release_artifacts/**/*
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

关键参数说明:

  • draft: true:创建草稿发布,不会对外公开
  • files:指定要上传到发布的文件,支持通配符匹配目录下所有内容
  • GITHUB_TOKEN:默认仓库秘钥,拥有创建发布的权限

如果你的artifact是单个zip包,直接指定该文件路径即可:

files: ${{ github.workspace }}/release_artifacts.zip

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 12:16:10