如何在我的jenkinsfile中配置“扫描多分支管道触发器”?

时间:2017-09-20 13:20:07

标签: jenkins jenkins-plugins jenkins-pipeline

现在我手动配置我的所有multibranch管道作业,并将“Scan Multibranch Pipeline Triggers”设置为3分钟。

如何将其放入我的jenkins文件中?我找不到这个例子。扫描多分支管道触发器是否在“触发器{}”块中可用?

2 个答案:

答案 0 :(得分:9)

multibranch配置页面上的设置仅配置多分支扫描作业本身,而不是在multibranch"文件夹中创建的各个作业"。

" Scan Multibranch Pipeline Triggers"下的选项;说"定期如果没有另外运行"只是多分支作业扫描新分支时的触发器。如果发现对现有分支进行了更改,或者如果使用与您的分支规范匹配的Jenkinsfile发现新分支,则将触发新构建,但这不是触发作业的方式。

实际上,通过向SCM配置添加属性以禁用自动SCM触发",可以在发现更改时禁用自动构建。然后,您将看到多分支扫描触发器,但即使发现了更改,作业本身也不会构建。

要触发作业,理想情况下,如果可以,您应该使用webhook。如果您使用git插件(而不是github插件)使用git hook,那么您需要启用PollSCM触发器(尽管您可以将其设置为仅极少轮询或根本不轮询)。

如果您只想要正常的触发选项,从2.22开始,您可以配置cronpollSCM触发器。

pipeline {
    triggers {
        cron('H/4 * * * 1-5')
        pollSCM('0 0 * * 0')
    }

然后我相信您可以配置webhooks以通知您的多分支作业何时进行扫描。我还没试过。我只是告诉它每天使用"每隔一小时或几次扫描;如果不是另外运行则定期扫描#34;

注意,同样的事情适用于构建discarder以及您在multibranch作业中配置的其他内容。在Web UI中,您只能配置多分支作业本身,而不能配置从其创建的单个作业。您必须使用Pipeline配置作业。

答案 1 :(得分:2)

在dsl中,您可以添加以下行来配置"扫描多分支管道触发器

configure { it / 'triggers' << 'com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger'{ spec '* * * * *' interval "60000" } }