2
私は1つのプロジェクトで複数のビルドジョブを起動するJenkinsパイプラインを持っています。各ビルドジョブには、ジョブ中に動的に生成されるさまざまなパラメータがあります。また、ジョブを実行するスレーブの文字列パラメータもあります。そのリストは\ nで分割された複数行の文字列です。ビルドジョブを動的にトリガする方法は?
def projectName = "${PROJECT_NAME}"
def slaveList = "${SLAVE_LIST}".split("\n")
def gradleTasks = "${GRADLE_TASKS}"
def slaveClosure = { slaveNum ->
build job: projectName, parameters: [
[$class: 'LabelParameterValue', name: 'slaveAol', label: slaveList[slaveNum]],
[$class: 'StringParameterValue', name: 'gradleTasks', value: gradleTasks]
]
}
def parallelSlaveMap = [:]
for (int i = 0; i < slaveList.size(); i++) {
parallelSlaveMap.put("slave${i}", slaveClosure(i))
}
parallel(parallelSlaveMap)
しかし、これは私に次のエラーが発生しました:
これは私が持っているものである
参考java.lang.IllegalArgumentException: Expected a closure or failFast but found slave[email protected]5caff0a8
at org.jenkinsci.plugins.workflow.cps.steps.ParallelStep$DescriptorImpl.newInstance(ParallelStep.java:202)
at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:134)
at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:113)
at groovy.lang.GroovyObject$invokeMethod.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:151)
at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:21)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:115)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:103)
at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:149)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:15)
at WorkflowScript.run(WorkflowScript:44)
、スクリプトの行44は、「平行」行があります。
私は間違っていますか?スレーブのパラメータリストに基づいて並列ビルドジョブを動的に作成する簡単な方法があるかどうかはわかりません。