用于通过参数触发cron的DSL。我在上面的作业中定义了参数,但是无法使用dsl脚本在cron中传递该参数

时间:2018-10-05 13:38:05

标签: jenkins dsl

我已经创建了参数,但是在创建cron作业时无法传递该变量。

job("dev_testing") 
{
  parameters
  {
    booleanParam('security_scan', true)
    choiceParam('OPTION', ['false (default)', 'true',])
  }
  triggers
  {
    cron('H 23 * * 6 %security_scan; true')
  }
}

以下是错误: 错误:脚本不允许使用groovy.lang.GroovyObject invokeMethod java.lang.String java.lang.Object(javaposse.jobdsl.dsl.helpers.triggers.TriggerContext parameterizedTimerTrigger script $ _run_closure1 $ _closure2 $ _closure3)

2 个答案:

答案 0 :(得分:1)

我不知道您安装了哪些插件,但是Parameterized Scheduler plugin应该可以帮助您解决用例。

按照他们的documentation,以下内容应该有效:

triggers {
   parameterizedCron('''H 23 * * 6 %security_scan=true''')
}

这也对我有用:

triggers {
    parameterizedTimerTrigger {
        parameterizedSpecification('H 23 * * 6 %security_scan=true')
    }
}

答案 1 :(得分:0)

我知道这是一个老话题-但我最近遇到了这个问题,无法获得多个触发器来为我的一生工作。终于我使它工作了:

triggers {
        parameterizedTimerTrigger {
            parameterizedSpecification('''H 21 * * 0-4 %APPLICATION=php
H 23 * * 0-4 %APPLICATION=java''')

        }
}