首页 > 解决方案 > Webhook 的 Job DSL 扫描的配置块不起作用

问题描述

我正在使用下面的配置块在 Jenkins Job DSL 中通过 webhook 功能进行扫描。

环境:Jenkins 和 Bitbucket

traits << 'com.igalg.jenkins.plugins.mswt.trigger.ComputedFolderWebHookTrigger' {
            token("TEST_HOOK")
        }

上面的块不起作用。

但是下面的定期触发语法没有任何问题。

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

因为我们要使用通过 webhook 功能进行扫描。请通过 webhook语法更正我的扫描

标签: jenkinstraitsjenkins-job-dsl

解决方案


Job DSL Pipeline 提供了一些声明性部件,用于在更改或计划时触发作业。另一种情况是Multibranch Pipeline,其中任何分支都由包含的 Jenkinsfile 配置。为了为新分支创建作业,必须手动或计划执行“立即扫描多分支管道”任务。这可以通过多分支管道作业中的配置块以编程方式(计划)完成:

 multibranchPipelineJob("JobName") {
 ...     
 configure { node ->
            def periodicFolderTrigger = node / triggers / 'com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger' {
                spec('H H * * *')
                //4 hours (60000(Milliseconds)*60(Minutes)*4(hours)
                interval(60000*60*4)
                }
            }
 }

webhook解决方案,更优雅,但您需要安装 Jenkins 插件https://plugins.jenkins.io/multibranch-scan-webhook-trigger/。以编程方式,您可以通过以下方式激活它:

 multibranchPipelineJob("JobName") {
 ...     
 configure { node ->
     def webhookTrigger = node / triggers / 'com.igalg.jenkins.plugins.mswt.trigger.ComputedFolderWebHookTrigger' {
                spec('')
                token("TESTTOKEN")
            }
      }
 }

推荐阅读