我正在从系统 groovy 脚本(一个构建步骤)将 jenkins 参数添加到作业中:
第一步。
import hudson.model.*
def pa = new ParametersAction([
new StringParameterValue("firstParam", 1), new StringParameterValue("secondParam", 2)
])
Thread.currentThread().executable.addAction(pa)
现在,当我尝试执行下一个系统 groovy 构建步骤时,我正在寻找它们,但它们不存在:
第 2 步。
def firstParam = "firstParam"
def secondParam = "secondParam"
def resolver = build.buildVariableResolver
def firstParamValue = resolver.resolve(firstParam)
def secondParamValue = resolver.resolve(secondParam)
println firstParamValue
println secondParamValue
他们都打印空!如何在下一个系统 groovy 构建步骤中获取参数?
奇怪的是,当我尝试执行 shell 作为以下步骤时,如果我这样做了:
echo $firstParam
echo $secondParam
我打印了 1 和 2。
即使我尝试使用以下代码打印所有参数,我也没有得到它们:
def thr = Thread.currentThread()
def build = thr?.executable
def parameters = build?.actions.find{ it instanceof ParametersAction }?.parameters
parameters.each {
println "parameter ${it.name}:"
println it.dump()
println "-" * 80
}