如何从JobDSL脚本中访问Jenkins作业参数列表?

时间:2015-07-13 22:35:13

标签: jenkins jenkins-job-dsl

我想保存传递给JobDSL作业的参数。我知道我可以参考个别参数,但我想使代码通用。我如何访问传递给作业的参数列表?

当前代码如下所示:

final jobParameters = new File('parameters')
jobParameters.write("""
    |AOEU=${AOEU}
    |SNTH=${SNTH}
"""[1..-1].stripMargin().trim())

我希望能够让它看起来像:

final jobParameters = new File('parameters')
jobParameters.write(params.iterator().join('\n'))

params可以在Build Flow插件中使用,但不能在JobDSL插件中使用。

2 个答案:

答案 0 :(得分:9)

DSL不提供对构建参数的访问。但是脚本可以访问Jenkins对象模型,因此您可以使用Jenkins API来检索当前构建及其参数:

import hudson.model.*

Build build = Executor.currentExecutor().currentExecutable
ParametersAction parametersAction = build.getAction(ParametersAction)
parametersAction.parameters.each { ParameterValue v ->
    println v
}

答案 1 :(得分:7)

这就是我调试的方式(我在某处阅读,我绝不是Groovy或Job DSL专家......):

binding.variables.each {
  println "${it.key} = ${it.value}"
}

显示所有现有环境变量,包括作业参数。

JOB_NAME = job-generator
...
NEXT_PROJECTS = baz,bat
...
PROJECT_TYPE = Software
...
PROJECTS = foo,bar
...
SHELL = /bin/bash