在Jenkins中使用pollSCM和“扫描多分支管道触发器”有什么区别?

时间:2018-10-19 14:58:56

标签: jenkins jenkins-pipeline

我一直在使用Jenkins,并且已经看到了很多Pipeline示例(声明性示例),并且已经看到一些示例在pollSCM中使用Jenkinsfile属性来触发构建,例如这个:

triggers {
        pollSCM('H/5 * * * *')
}

但是,我在配置多分支管道时看到了“扫描多分支管道触发器”选项。我不确定两者之间有什么区别。

所有这些问题都传给我,因为我面临着为同一工作触发两个构建的某些情况,并且我认为这是因为我同时配置了这两个选项。

任何人都可以帮助我了解这种区别吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

“扫描多分支管道”触发器将扫描存储库中是否有新分支以及现有分支中的更改。默认情况下,它将为所有已更新的分支触发新的构建。但是,在多分支作业配置中,您可以为特定(或全部)分支禁用此自动触发。

“轮询SCM”选项是特定于分支机构的。在Jenkinsfile中,您可以为不同的分支配置不同的选项。此选项将永远无法触发分支的第一个构建,因为它至少需要一个构建,因此properties步骤得到执行,并且设置了“轮询SCM”选项。也就是说:此处的任何更改将仅在下一次构建后生效。

因此,如果可能的话,我建议您坚持基于多分支分支扫描的触发器。但是,在某些特殊情况下(例如,永远不会自动在新分支上首次构建),使用轮询SCM功能仍然有用。在这种情况下,您可能需要根据需要禁用自动触发。

最后但并非最不重要的轮询SCM功能有时使用与“扫描多分支管道”不同的插件,例如用于Bitbucket。 AFAIK for Bitbucket的多分支触发器更加灵活,与普通的Bitbucket触发器相比,它可以触发更多事件的构建。

答案 1 :(得分:0)

我认为pollSCM必须是jenkins插件

https://wiki.jenkins.io/display/JENKINS/PollSCM+Plugin

多分支管道:这是管道的类型,詹金斯在其中扫描并从存储库中的所有分支中提取信息,因此当在分支中检入某些代码(如果已配置)时,构建将自动触发