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

GitLab发布流水线变量传递问题求助

解决GitLab CI中release块无法读取脚本变量的问题

问题原因

GitLab CI的job配置(包括release关键字块)是在Runner执行脚本之前就由GitLab服务器解析完成的,脚本里定义的nextVersion属于Runner运行时的环境变量,无法被提前解析的release块读取到——这就是硬编码值能生效,但变量不行的核心原因。

解决方案

放弃使用job配置中的release关键字,直接在script阶段调用release-cli命令创建发布。这样脚本里的变量就能正常传递,因为命令是在Runner环境中执行的,此时变量已经存在。

修改后的完整job代码:

release_job:
  stage: release
  image: registry.gitlab.com/gitlab-org/release-cli:latest
  rules:
    - if: $CI_COMMIT_TAG
      when: never                                  
    - if: $CI_COMMIT_BRANCH == 'develop'           
  script:
    - nextVersion=$(cat version.env)
    - echo "running release_job for $nextVersion"
    - |
      release-cli create --name "Release $nextVersion" \
                        --tag-name "$nextVersion" \
                        --description "$nextVersion"

扩展说明

如果需要更复杂的发布描述,可以把内容写入文件,再通过--description-file参数传递:

- echo "### Release $nextVersion\n- 新增功能X\n- 修复Bug Y" > release_notes.md
- release-cli create --name "Release $nextVersion" --tag-name "$nextVersion" --description-file release_notes.md

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 03:40:40