我正在从系统groovy脚本(一个构建步骤)向作业添加jenkins参数:
第一步。
import hudson.model.*
def pa = new ParametersAction([
new StringParameterValue("firstParam", 1), new StringParameterValue("secondParam", 2)
])
Thread.currentThread().executable.addAction(pa)
现在,当我尝试执行下一个系统groovy构建步骤时,我正在寻找它们并且它们不在那里:
第二步。
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
}
答案 0 :(得分:0)
你的第一个构建步骤对我不起作用,它给出了运行时错误,因为设置的字符串参数是整数而不是字符串。我把它更改为它并且它可以工作,第二步获取参数(我在整数值附近添加引号并且使用'build'变量进行当前构建):
import hudson.model.*
def pa = new ParametersAction([
new StringParameterValue("firstParam", '1'), new StringParameterValue("secondParam", '2')
])
build.addAction(pa)
我在Jenkins v1.519上尝试这个。