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

GitLab CI/CD任务优化:仅在MR合并至main分支时运行

调整GitLab CI/CD任务配置,仅在MR合并至main分支后执行

你当前的配置问题在于,仅针对源分支为main/master的MR做了拦截,但没有覆盖所有MR场景,导致从main发起MR到其他分支时,任务仍可能被触发。可以通过以下配置实现需求:

Test:
  stage: test
  script:
    - echo "hello world"
  rules:
    # 拦截所有MR事件的流水线,不管源/目标分支
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
      when: never
    # 仅在main分支的push流水线中运行(MR合并至main后会触发该类型流水线)
    - if: '$CI_COMMIT_REF_NAME == "main"'
      when: manual

配置说明

  • 第一条规则直接拦截所有merge_request_event类型的流水线,彻底避免MR过程中触发任务,包括从main向其他分支发起的MR。
  • 第二条规则仅允许main分支的流水线执行任务,而MR合并至main分支后,GitLab会触发push类型的流水线(而非MR事件),刚好符合这个条件。

这样调整后,任务只会在MR成功合并到main分支之后,由main分支的新提交触发的流水线中出现,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 13:47:20