Gitlab 合并请求的创建启动管道

Gitlab 合并请求的创建启动管道,gitlab,Gitlab,在gitlab.com上,问题的创建以及新分支和合并请求直接触发CI管道启动。 这对我来说是意外的,因为新分支不包含任何更改。 为什么会触发管道 最好的, LAR如“每次提交或推送都会触发CI管道”中所述。由于新的git分支是在远程存储库上创建的,因此在创建新分支时会触发管道 理论基础: 乍一看,这种行为似乎是多余的,但GitLab允许您根据存储库的当前分支运行不同的作业;例如,您可以仅在主分支上运行“部署”作业。因此,从GitLab的角度来看,在每次创建新分支时执行管道是有意义的 有关更多信息

在gitlab.com上,问题的创建以及新分支和合并请求直接触发CI管道启动。 这对我来说是意外的,因为新分支不包含任何更改。 为什么会触发管道

最好的, LAR

如“每次提交或推送都会触发CI管道”中所述。由于新的git分支是在远程存储库上创建的,因此在创建新分支时会触发管道

理论基础: 乍一看,这种行为似乎是多余的,但GitLab允许您根据存储库的当前分支运行不同的作业;例如,您可以仅在主分支上运行“部署”作业。因此,从GitLab的角度来看,在每次创建新分支时执行管道是有意义的

有关更多信息,请访问:

GitLab 11.4引入了这种行为,现在解释如下:

如果将新分支或新标记推送到GitLab,则策略的计算结果始终为true,GitLab将创建一个作业。此功能尚未与合并请求连接,而且由于GitLab正在用户创建合并请求之前创建管道,因此目前我们不知道目标分支

没有目标分支,就不可能知道共同祖先是什么,因此在这种情况下,我们总是创建一个作业。此功能最适合于master这样的稳定分支,因为在这种情况下,GitLab使用分支中存在的上一个提交来与推送的最新SHA进行比较


来源:

谢谢您的提示。有没有一种方法可以防止只为创建分支而启动,而不浪费管道配额?我知道没有。但您可以使管道缓存重用以前的结果,请参见此处:@reschifl GitLab 11.4今天发布,其中包含有关此行为的更新文档;现在解释了其背后的理由。