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

如何生成CI_COMMIT_TAG触发的GitLab CI完整流水线配置

生成GitLab CI标签推送场景下的完整配置方法

我的GitLab CI采用多文件拆分配置,结构如下:

.
├── .gitlab-ci.yml
└── .gitlab-ci.d
    ├── main.yml
    └── release_main.yml

根目录的.gitlab-ci.yml内容为:

workflow:
  rules:
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
      when: always
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
      when: always
    - if: $CI_COMMIT_TAG
      when: always
    - when: never

include:
  - local: .gitlab-ci.d/main.yml
    rules:
      - if: $CI_COMMIT_TAG
        when: never
      - when: always
  - local: .gitlab-ci.d/release_main.yml
    rules:
      - if: $CI_COMMIT_TAG
        when: always
      - when: never

目前通过流水线编辑器能分析默认分支的完整配置,但无法查看CI_COMMIT_TAG触发时的完整配置,以下是几种生成标签推送场景完整配置的方法:

方法一:用GitLab内置CI Lint工具模拟标签场景

  1. 进入项目主页,左侧菜单选择「CI/CD」→「CI lint」
  2. 点击页面右上角的「Simulate pipeline creation」
  3. 在弹出的表单中,添加变量CI_COMMIT_TAG并设置任意标签值(例如v1.0.0),按需保留其他必要变量(如CI_DEFAULT_BRANCH)
  4. 点击「Simulate」,即可查看标签场景下自动合并后的完整CI配置

方法二:本地用gitlab-ci-local工具模拟

  1. 先安装工具(需Node.js环境):
    npm install -g gitlab-ci-local
    
  2. 进入项目根目录,执行命令模拟标签推送场景:
    gitlab-ci-local --variable CI_COMMIT_TAG=v1.0.0
    
  3. 工具会自动解析所有符合规则的配置文件,输出最终的完整流水线配置,同时可预览待执行的Job

方法三:手动合并配置(适用于规则简单的场景)

根据当前的include规则,标签推送时:

  • .gitlab-ci.d/main.yml会被排除(CI_COMMIT_TAG存在时,其include规则为when: never)
  • .gitlab-ci.d/release_main.yml会被加载(CI_COMMIT_TAG存在时,其include规则为when: always)
    直接将.gitlab-ci.yml的内容与release_main.yml的内容合并,即可得到标签场景下的完整配置。此方法仅适合规则简单的情况,复杂规则建议用工具生成更准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 03:07:15