【发布时间】:2017-06-24 12:51:14
【问题描述】:
我正在尝试从 Build Flow Plugin 复制此功能:https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin:
parallel (
{
build("job1")
build("job2")
},
{
build("job5")
build("job6")
}
)
我有以下 DSL 工作:
subjob = "test"
subjob2 = "test2"
series1 = []
series2 = []
subjob = []
["job1","job2"].each{ parameter ->
series1.add({build( subjob, param: parameter )})
}
["job5","job6"].each{ parameter2 ->
series2.add({build( subjob2, param: parameter2)})
}
subjob.add(series1)
subjob.add(series2)
parallel( subjob )
我的目标是依次运行一组作业 1&2 和另一组系列作业 5&6,但同时运行两组作业。即 Job 1 和 Job 5 同时开始,然后当 Job 1 完成时 Job 2 开始,当 Job 5 完成时 Job 6 开始。
但是,我对上述代码尝试了多种变体,但每次都出现不同的错误。上面的代码给出了以下内容:
ERROR: Failed to run DSL Script
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object '[Script1$_run_closure1$_closure3@3c52c84, Script1$_run_closure1$_closure3@56789ba0]' with class 'java.util.ArrayList' to class 'groovy.lang.Closure' due to: groovy.lang.GroovyRuntimeException: failed to invoke constructor: public groovy.lang.Closure(java.lang.Object,java.lang.Object) with arguments: [Script1$_run_closure1$_closure3@3c52c84, Script1$_run_closure1$_closure3@56789ba0] reason: java.lang.InstantiationException
有更好的方法吗?
【问题讨论】:
标签: jenkins groovy build parallel-processing series