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

如何编写仅在合并请求获批时运行的.gitlab-ci.yml任务?

解决方案:让GitLab CI任务仅在合并请求获批时运行

要实现这个需求,需要从CI配置修改和GitLab项目设置调整两方面入手:

1. 修改CI任务配置

GitLab提供预定义变量$CI_MERGE_REQUEST_APPROVED,当合并请求获批时该变量值为true。你可以修改任务的rules条件,同时限制合并请求事件和获批状态:

test_c:
  stage: test
  script:
    - echo "This job tests something. It will only run when all jobs in the"
    - echo "build stage are complete."
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_APPROVED == "true"'

2. 开启获批触发管道的项目设置

默认情况下GitLab不会在合并请求获批时自动触发新管道,需手动开启该功能:

  • 进入项目的Settings > CI/CD页面
  • 找到General pipelines下的Merge request pipelines选项
  • 勾选Run pipelines for merged results和Run pipelines when merge requests are approved(不同GitLab版本选项名称可能略有差异)

完成上述配置后,test_c任务只会在合并请求获批时运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 03:27:41