合并请求的创建启动管道

时间:2018-10-18 13:59:25

标签: gitlab

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

最好, 拉斯

1 个答案:

答案 0 :(得分:1)

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

理论价格:

乍一看,这种行为似乎是多余的,但是GitLab允许您根据存储库的当前分支来运行不同的作业。例如,您只能在master分支上运行“部署”作业。因此,从GitLab的角度来看,每次创建新分支时都应执行Pipeline。

更多信息,请点击此处:https://docs.gitlab.com/ce/ci/yaml/README.html#only-and-except-simplified

在GitLab 11.4中引入了此行为,现在对其进行解释:

  

如果您将新分支或新标签推送到GitLab,则该策略始终评估为true,GitLab将创建一个作业。此功能尚未与合并请求关联,并且由于GitLab在用户可以创建合并请求之前创建了管道,因此我们目前尚不了解目标分支。

     

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

来源:https://docs.gitlab.com/ee/ci/yaml/#only-changes