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

如何让GitLab CI作业仅在合并请求创建时运行一次?

实现GitLab CI作业仅在合并请求创建时运行一次

可以实现,核心是利用GitLab CI提供的CI_MERGE_REQUEST_EVENT_TYPE环境变量,该变量会标识合并请求(MR)相关流水线的触发类型:

  • 当MR首次创建时,变量值为created
  • 当已有MR推送新提交时,变量值为updated

修改你的CI配置,在rules中同时判断流水线来源和事件类型即可:

some-job:
  script:
    - echo "仅在MR创建时执行一次"
  rules:
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_EVENT_TYPE == 'created'

注意事项

  • 该方案要求GitLab版本在13.6及以上,这个版本开始引入了CI_MERGE_REQUEST_EVENT_TYPE变量
  • 如果你的GitLab版本低于13.6,可通过调用GitLab API查询MR的创建时间与当前流水线触发时间对比,但实现复杂度较高,建议优先升级GitLab版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 02:09:52