首页 > 解决方案 > Gitlab CI 规则 - 仅在推送到源/主时运行

问题描述

我正在寻找一个不寻常的用例,我只在推送到 origin/master 后运行某些作业。实际上,这只发生在合并时,所以我的第一次尝试是以下规则:

if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_COMMIT_BRANCH == "master"'

但这不起作用,大概是因为推送到 origin/master 的实际合并提交不被视为merge_request_event.

有什么办法可以做到这一点?

注意:我不是简单地使用if: $CI_COMMIT_BRANCH == "master"'来避免在推送到非源叉的master分支时运行。

标签: gitlabgitlab-ci

解决方案


我找到了一种方法来使用唯一分配PROJECT_ID的 gitlab 变量(每个 fork 都不同)。所以以下工作:

if: '$CI_PROJECT_ID == "<origin fork's project_id>" && $CI_COMMIT_BRANCH == "master"'

项目 ID 可以在 gitlab 的设置中找到。


推荐阅读