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

无法通过GitHub Release工作流上传二进制文件求助

排查GitHub Actions推送标签时无法上传二进制文件的问题

1. 权限配置位置错误

你在Create GitHub Release步骤的env块中定义permissions是无效的,权限需要配置在workflow全局级别或job级别,而非环境变量里。

修复示例(全局配置权限):

name: Release

on:
  push:
    tags:
      - 'v*'

# 全局配置Release操作所需权限
permissions:
  contents: write

env:
  BUILD_TYPE: Release

jobs:
  build-and-release:
    runs-on: windows-latest
    # 也可在此处配置job级别的权限
    # permissions:
    #   contents: write

2. 使用已废弃的Action

actions/create-release@v1是GitHub官方已废弃的Action,推荐使用softprops/action-gh-release@v1,它可同时完成Release创建与资产上传,简化配置流程。

3. 二进制文件路径可能错误

你指定的上传路径是${{github.workspace}}\.bin\${{env.BUILD_TYPE}}\ccecho.exe,但CMake默认在Windows环境下执行构建后,二进制文件会生成在build/${BUILD_TYPE}目录下(如build/Release/ccecho.exe),若未在CMakeLists.txt中自定义输出路径,需修正路径:

file: ${{github.workspace}}/build/${{env.BUILD_TYPE}}/ccecho.exe

4. 资产名称包含无效字符

${{github.ref}}的返回值格式为refs/tags/vx.x.x,直接用于asset_name会导致文件名包含斜杠(/),属于非法字符。应改用${{github.ref_name}},它仅返回纯标签名(如v1.0.0):

asset_name: ccecho-${{github.ref_name}}.exe

修复后的完整工作流示例

name: Release

on:
  push:
    tags:
      - 'v*'

permissions:
  contents: write

env:
  BUILD_TYPE: Release

jobs:
  build-and-release:
    runs-on: windows-latest

    steps:
    - name: Checkout
      uses: actions/checkout@v4

    - name: Configure CMake
      run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}

    - name: Build
      run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}

    # 新增验证步骤,确认二进制文件生成成功
    - name: Verify binary exists
      run: |
        if (Test-Path "${{github.workspace}}/build/${{env.BUILD_TYPE}}/ccecho.exe") {
          Write-Host "Binary file found"
        } else {
          Write-Error "Binary file not found in expected path"
          exit 1
        }

    - name: Create Release & Upload Asset
      uses: softprops/action-gh-release@v1
      with:
        tag_name: ${{ github.ref_name }}
        name: Release ${{ github.ref_name }}
        body: |
          Release created by GitHub Actions for tag ${{ github.ref_name }}.
        draft: false
        prerelease: false
        files: ${{github.workspace}}/build/${{env.BUILD_TYPE}}/ccecho.exe

额外验证点

  • 你已配置的仓库细粒度权限(Contents: Read & write等)符合要求,无需调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 11:43:09