现在我手动配置我所有的多分支管道作业并将“扫描多分支管道触发器”设置为 3 分钟。
我如何将它放入我的 Jenkinsfile
?我找不到这方面的例子。 triggers{}
中是否提供“扫描多分支管道触发器”块?
最佳答案
多分支配置页面上的设置仅配置多分支扫描作业本身,而不是在多分支“文件夹”内创建的单个作业。
“Scan Multibranch Pipeline Triggers”下的“Periodically if not running”选项只是多分支作业扫描新分支时的触发器。如果发现现有分支发生更改,或者发现新分支与 Jenkinsfile 匹配您的分支规范,则将触发新构建,但这不是触发作业的方式。
实际上,您可以通过将属性添加到 SCM 配置以“禁用自动 SCM 触发”来在发现更改时禁用自动构建。然后您将看到多分支扫描触发器,但即使发现更改,作业本身也不会构建。
要触发作业,理想情况下您应该尽可能使用 webhook。如果您通过 git 插件(而不是 github 插件)使用 git hook,那么您需要启用 PollSCM 触发器(尽管您可以将其设置为仅轮询很少或根本不轮询)。
如果你只想要普通的触发选项,从 2.22 开始,你可以配置 cron
或 pollSCM
触发器。
pipeline {
triggers {
cron('H/4 * * * 1-5')
pollSCM('0 0 * * 0')
}
然后我相信您可以配置 webhooks 来通知您的多分支作业何时进行扫描。我没试过。我只是告诉它使用“如果不以其他方式运行,则定期运行”每小时或每天扫描几次。
请注意,同样的事情适用于构建丢弃器和您在多分支作业中配置的其他内容。在 Web UI 中,您只能配置多分支作业本身,而不能配置从它创建的单个作业。您必须使用 Pipeline 来配置作业。
关于jenkins - 如何在 jenkinsfile 中配置 "Scan Multibranch Pipeline Triggers"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46323193/