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

如何配置GitLab流水线作业仅在合并请求创建时运行一次?

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

可以通过结合$CI_PIPELINE_SOURCE和$CI_MERGE_REQUEST_EVENT_TYPE两个预定义变量来实现这个需求,具体配置如下:

your_target_job:
  script:
    - echo "这里写仅在MR创建时执行的任务逻辑"
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_EVENT_TYPE == "opened"'
      when: always

关键变量说明

  • $CI_PIPELINE_SOURCE:用来确认当前流水线是由合并请求事件触发的
  • $CI_MERGE_REQUEST_EVENT_TYPE:精准区分合并请求的事件类型——opened对应MR首次创建的场景,而后续关联分支推送新提交、MR被重新打开等操作会触发updated类型,不会满足这个规则

这样配置后,目标作业只会在合并请求刚创建时运行一次,后续分支有新提交时不会再触发该作业。

注意:$CI_MERGE_REQUEST_EVENT_TYPE变量需要GitLab 13.6及以上版本支持,请确认你的GitLab实例版本达标。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:25:15