目前我手动配置所有的多分支流水线作业,并将“扫描多分支流水线触发器”设置为3分钟。
我该如何在我的Jenkinsfile
中添加这个设置?我找不到相关示例。 "Scan Multibranch Pipeline Triggers" 是否可以在 triggers{}
块中使用?
目前我手动配置所有的多分支流水线作业,并将“扫描多分支流水线触发器”设置为3分钟。
我该如何在我的Jenkinsfile
中添加这个设置?我找不到相关示例。 "Scan Multibranch Pipeline Triggers" 是否可以在 triggers{}
块中使用?
多分支配置页面上的设置仅配置多分支扫描作业本身,而不是在多分支“文件夹”中创建的个别作业。
“扫描多分支管道触发器”下的选项,“如果没有运行其他”,只是多分支作业扫描新分支的触发器。如果找到现有分支的更改,或者发现符合您的分支规格的Jenkinsfile的新分支,则会触发新构建,但这不应该是触发作业的方式。
实际上,您可以通过向SCM配置添加属性“禁用自动SCM触发”来禁用在发现更改时自动构建。然后,您将看到多分支扫描触发器,但作业本身不会构建,即使发现了更改也是如此。
要触发作业,最好使用Webhook。如果使用git插件(而不是github插件)使用git钩子,则需要启用PollSCM触发器(尽管您可以将其设置为仅偶尔轮询,或根本不轮询)。
如果您只想要常规的触发选项,则从2.22开始,可以配置cron
或pollSCM
触发器。
pipeline {
triggers {
cron('H/4 * * * 1-5')
pollSCM('0 0 * * 0')
}
我相信您可以配置Webhooks以在需要扫描时通知您的多分支作业。我没有尝试过这样做。我只是告诉它使用“定期执行,如果没有其他运行”选项每小时或每天几次进行扫描。
请注意,对于您在多分支作业中配置的构建丢弃器和其他内容也适用同样的情况。在Web界面中,您只能配置多分支作业本身,而不能配置从中创建的单个作业。您必须使用Pipeline来配置这些作业。
configure {
it / 'triggers' << 'com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger'{
spec '* * * * *'
interval "60000"
}
}
multibranchPipelineJob('my-awesome-job') {
triggers {
periodicFolderTrigger {
interval("7d")
}
}
}