Noe*_*Yap 5 jenkins jenkins-job-dsl
我想保存传递给JobDSL作业的参数.我知道我可以参考个别参数,但我想使代码通用.我如何访问传递给作业的参数列表?
当前代码看起来像:
final jobParameters = new File('parameters')
jobParameters.write("""
|AOEU=${AOEU}
|SNTH=${SNTH}
"""[1..-1].stripMargin().trim())
Run Code Online (Sandbox Code Playgroud)
我希望能够让它看起来像:
final jobParameters = new File('parameters')
jobParameters.write(params.iterator().join('\n'))
Run Code Online (Sandbox Code Playgroud)
params 是Build Flow Plugin中可用的东西,而不是JobDSL插件.
DSL不提供对构建参数的访问.但是该脚本可以访问Jenkins对象模型,因此您可以使用Jenkins API来检索当前构建及其参数:
import hudson.model.*
Build build = Executor.currentExecutor().currentExecutable
ParametersAction parametersAction = build.getAction(ParametersAction)
parametersAction.parameters.each { ParameterValue v ->
println v
}
Run Code Online (Sandbox Code Playgroud)
这是我如何进行调试(我在某处阅读,我绝不是Groovy或Job DSL专家......):
binding.variables.each {
println "${it.key} = ${it.value}"
}
Run Code Online (Sandbox Code Playgroud)
这将显示所有现有环境变量,包括作业参数.
JOB_NAME = job-generator
...
NEXT_PROJECTS = baz,bat
...
PROJECT_TYPE = Software
...
PROJECTS = foo,bar
...
SHELL = /bin/bash
Run Code Online (Sandbox Code Playgroud)