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

red*_*888 8 jenkins jenkins-plugins jenkins-pipeline

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

我怎么把它放在我的jenkins文件中?我找不到这个例子.扫描多分支管道触发器是否在"触发器{}"块中可用?

Rob*_*les 11

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

"扫描多分支管道触发器"下的"选择是否定期运行"选项只是多分支作业扫描新分支时的触发器.如果发现对现有分支进行了更改,或者如果使用与您的分支规范匹配的Jenkinsfile发现新分支,则将触发新构建,但这不是触发作业的方式.

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

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

如果您只想要正常的触发选项,从2.22开始,您可以配置其中一个cron或多个pollSCM触发器.

pipeline {
    triggers {
        cron('H/4 * * * 1-5')
        pollSCM('0 0 * * 0')
    }
Run Code Online (Sandbox Code Playgroud)

然后我相信您可以配置webhooks以通知您的multibranch作业何时进行扫描.我没试过.我只是告诉它每天每小时或几次使用"如果没有其他方式运行"定期扫描.

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

  • 正确的属性名称是**抑制自动 SCM 触发**。 (2认同)

小智 6

如果您使用JobDSL Jenkins 插件来创建作业,那么您可以添加以下行来配置“扫描多分支管道触发器”:

configure {
    it / 'triggers' << 'com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger'{
        spec '* * * * *'
        interval "60000"
    }
}
Run Code Online (Sandbox Code Playgroud)