如何编写仅在合并请求获批时运行的.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
相关产品推荐
相关产品推荐

