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

GitHub Action动态传递最新Tag至Sentry失败问题求助

解决GitHub Action中动态环境变量在with参数里的访问问题

你的核心问题出在自定义环境变量的访问方式上,直接给你修正方案:

正确的变量引用方式

将with参数里的版本配置行修改为:

version: ${{ env.GITHUB_LATEST_RELEASE }}

原因说明

  1. 你通过echo 'key=val' >> $GITHUB_ENV设置的变量属于步骤级自定义环境变量,这类变量必须通过env上下文(即${{ env.变量名 }})才能在工作流的表达式(比如with参数、if条件)中访问。
  2. 直接写${{ GITHUB_LATEST_RELEASE }}会被GitHub识别为内置上下文变量,但这个变量不存在,因此触发"Unrecognized named-value"错误。
  3. $GITHUB_LATEST_RELEASE是Shell环境变量的写法,仅能在run步骤的Shell命令中使用,无法在Action的with参数这类工作流配置项里生效。

修正后的完整工作流配置

inform_sentry_about_release:
  runs-on: ubuntu-latest
  env:
    ACCESS_TOKEN: ${{ secrets.GH_PAT }}
  steps:
    - uses: actions/checkout@v2
    - name: Set GITHUB_VERSION variable
      run: |
        echo 'GITHUB_LATEST_RELEASE=$(curl -H "Authorization: token ${ACCESS_TOKEN}" "https://api.github.com/repos/myusername/myreponame/releases" -s | jq -r ".[0].tag_name")' >> $GITHUB_ENV
    - name: Create Sentry release
      uses: getsentry/action-release@v1
      env:
        SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
        SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
        SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
      with:
        environment: production
        version: ${{ env.GITHUB_LATEST_RELEASE }}

额外优化建议

GitHub Actions内置了gh CLI工具,你可以用它简化最新Tag的获取命令,避免手动编写curl+jq:

- name: Set GITHUB_VERSION variable
  run: echo "GITHUB_LATEST_RELEASE=$(gh release view --json tagName --jq .tagName)" >> $GITHUB_ENV
  env:
    GITHUB_TOKEN: ${{ secrets.GH_PAT }}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 20:25:27