使用Job DSL设置Jenkins参数化计划程序插件

5

我正试图使用Jenkins Job DSL添加一个带参数的定时任务。然而,每次尝试添加该任务时,都会出现以下错误:

No signature of method: javaposse.jobdsl.dsl.helpers.triggers.TriggerContext.parameterizedTimerTrigger() is applicable
for argument types: (com.manh.cp.jenkins.script$_createJob_closure3$_closure6$_closure9) values:
[com.manh.cp.jenkins.script$_createJob_closure3$_closure6$_closure9@4f7fa1a2]

我尝试了两种方法:
triggers {
   parameterizedCron('''H 20 * * * %var=a''')
}

and

triggers {
    parameterizedTimerTrigger {
        parameterizedSpecification('H 20 * * * %var=a')
    }
}

这对其他人是否仍然有效?

参数化调度程序 v0.8 任务 DSL v1.76


尝试使用 'H 20 * * * % var=a'(注意 % 周围的空格)。 - MaratC
我使用parameterizedTimerTrigger时遇到了相同的错误。当我使用parameterizedCron时,我得到了以下错误信息:No signature of method: javaposse.jobdsl.dsl.helpers.triggers.TriggerContext.parameterizedCron() is applicable for argument types: (String) values: [H 20 * * * % var=a] - cbwsports
你解决了吗,@cbwsports?我也遇到了同样的问题。 - pressbyron
1个回答

3

可能您需要先安装插件:

https://plugins.jenkins.io/parameterized-scheduler/

然后您可以使用DSL脚本:

pipelineJob('test') {
  // ...

  parameters {
    textParam('MYVAR',
      '1',
      'Test parameter'
    )
    choiceParam('MYCHOICE',
      ['A',
       'B',
      ],
      'Test choice param'
    )
  }

  properties {
    pipelineTriggers {
      triggers {
        parameterizedTimerTrigger {
          parameterizedSpecification('''
H 18 * * * %MYVAR=1; MYCHOICE=A;
H 18 * * * %MYVAR=2; MYCHOICE=B;
''')
        }
      }
    }

  }

请注意,Jenkinsfile 中的语法与其他文件不同:
pipeline {
  // ...

  parameters {
    text name: 'MYVAR',
      description: 'Test parameter',
      defaultValue: '1'
    choice name: 'MYCHOICE',
      choices: ['A', 'B',],
      description: 'Test choice param'
  }

  triggers {
    parameterizedCron('''
H 18 * * * %MYVAR=1; MYCHOICE=A;
H 18 * * * %MYVAR=2; MYCHOICE=B;
''')
  }

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接