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

GitLab如何获取CI流水线执行时include引入的.yml文件对应commit

问题结论

是可以获取到本次引入的template.yml对应的具体commit哈希的,两种实现方案如下:

  • 方案1(推荐,适用于GitLab 15.3及以上版本)
    GitLab官方在15.3版本新增了预定义CI变量CI_INCLUDED_FILES,该变量为JSON格式,存储了当前流水线所有通过include引入的文件的完整元信息,其中就包含每个引入文件对应的commit_sha字段,你可以直接在流水线的任意任务中解析该变量获取对应的commit哈希。
    你可以直接在任务中打印变量查看完整结构:

    echo $CI_INCLUDED_FILES
    
  • 方案2(兼容低版本GitLab)
    如果你使用的GitLab版本低于15.3,可以在流水线中新增一个执行任务,手动拉取对应仓库指定分支的HEAD commit哈希即可:

    1. 先为你的CI配置test_repository仓库的只读访问权限(可以通过部署令牌或者CI变量存储仓库访问令牌实现)
    2. 在任务中执行以下命令获取对应分支的最新commit哈希:
    git ls-remote https://<你的GitLab实例域名>/test_repository.git develop | awk '{print $1}'
    

    注意:该方案存在极小概率偏差,如果在流水线触发后到执行该命令的间隙,有人向develop分支提交了新的commit,查询到的哈希会和实际引入的template版本不一致,优先选择方案1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 02:15:01