我有一个jenkins作业A在构建作业时从参数中选择任何选项,每当我尝试构建作业B时,我应该在作业A上选择的相同参数值被作业B选中。工作B不应该是工作A的下游工作。
我的解决方法:我尝试将我在作业A上选择的参数复制到文件中。
在作业B上,我无法在jenkins中找到选项,从参数部分的文件中选择要拾取的变量值。
非常感谢任何建议和不同方法。
答案 0 :(得分:0)
您可以使用System Groovy脚本执行此操作。您可以找到最新的作业A build,并将参数值复制到作业B中。
import hudson.model.*
def hif = Hudson.instance
//Get build variables for this build
def buildMap = build.getBuildVariables()
//get most recent build of project A
def a = hif.getItems(hudson.model.Project).find {it.displayName.toUpperCase()=='PROJECT A'}.getBuilds().first()
//Add parameter to the build variables for this build
buildMap['MYPARAM']=a.buildVariableResolver.resolve('MYPARAM')
println(buildMap['MYPARAM'])
//Assign the new parameters back to job B
setBuildParameters(buildMap)
def setBuildParameters(map) {
def npl = new ArrayList<StringParameterValue>()
for (e in map) {
npl.add(new StringParameterValue(e.key.toString(), e.value.toString()))
}
def newPa = null
def oldPa = build.getAction(ParametersAction.class)
if (oldPa != null) {
build.actions.remove(oldPa)
newPa = oldPa.createUpdated(npl)
} else {
newPa = new ParametersAction(npl)
}
build.actions.add(newPa)
}