我想在Jenkins管道中执行多个并行步骤。我需要的所有变量都是通过ArrayLists给出的。现在我想通过字符串构建器和for循环构建代码。之后我想执行字符串作为代码
伪代码:
imageview
但我怎么能执行这个呢?我试过了sb << try{ \n
for(i=0; i<TMP; i++) {
sb <<
parallel(
build VARIABLE{
def BUILDJOBNAME = build job: BUILDJOBVARIABLE, parameters:
[
string(name: 'parametername', value: PARAMETER)
]
}
}
sb << catch(e){
(...)
}
但是这会导致以下错误:
hudson.remoting.ProxyException:groovy.lang.MissingMethodException:没有方法签名:java.lang.Class.evaluate()适用于参数类型:(java.lang.String) < / p>
答案 0 :(得分:1)
我们使用Groovy哈希来定义并行步骤并在一个并行语句中执行它们:
def tests = ["test1", "test2", "test3", "test4"];
try {
def branches = [:];
for (int i = 0; i < tests.size(); i++) {
def test = tests[i];
branches["$test"] = {
try
{
env.test = test;
build job: 'BUILD_JOB', parameters: [string(name: 'NAME', value: test)]
}
catch (err)
{
currentBuild.result = 'FAILURE';
}
}
}
parallel branches
}
branches
哈希中的每个元素都是一个并行执行路径。