首页 > 解决方案 > 用于使用参数触发 cron 的 DSL。我已经在上面的作业中定义了参数,但无法使用 dsl 脚本在 cron 中传递它

问题描述

我已经创建了参数,但在创建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)

标签: jenkinsdsl

解决方案


我不知道您安装了哪些插件,但参数化调度程序插件应该可以帮助您解决用例。

根据他们的文档,以下内容应该有效:

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

这也对我有用:

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

推荐阅读