如何配置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
相关产品推荐
相关产品推荐

