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

如何在GitLab CI中获取打标签对应的动态sprint发布分支名称

解决方案

你可以在job运行阶段通过Git命令直接查询当前触发pipeline的标签对应的关联分支,过滤得到符合release/XXXX.XX格式的分支名即可,具体实现步骤如下:

  • 第一步:配置job的Git克隆策略,确保能拿到完整的分支和提交信息,在.gitlab-ci.yml对应job中添加以下配置:
your-job-name:
  variables:
    # 关闭浅克隆,确保能获取全部分支引用
    GIT_DEPTH: 0
  script:
    # 同步远端所有分支信息到本地
    - git fetch origin
    # 查询当前标签对应提交所属的release格式分支,赋值为变量
    - RELEASE_BRANCH=$(git branch -r --contains $CI_COMMIT_SHA | grep -o 'origin/release/[0-9]\{4\}\.[0-9]\{2\}' | head -n 1 | sed 's/origin\///')
    # 后续可直接调用$RELEASE_BRANCH变量执行操作
    - echo "当前对应发布分支为 $RELEASE_BRANCH"
  • 第二步:多job复用变量配置。如果需要在多个job中使用该分支名,可以将变量写入dotenv文件传递给后续阶段的job:
your-job-name:
  artifacts:
    reports:
      dotenv: release.env
  script:
    # 上述查询逻辑不变
    - echo "RELEASE_BRANCH=$RELEASE_BRANCH" > release.env

规则说明:标签触发pipeline时CI_COMMIT_REF_NAME默认返回标签名是Gitlab CI的设计规则,因为标签本身也是一种Git引用,优先级高于分支,所以无法通过预置变量直接获取分支名,必须通过Git命令查询提交与分支的关联关系。

内容的提问来源于stack exchange,提问作者Sushil.R

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:09:02