По сути, вы можете создать функцию, которая возвращает карту Groovy замыканий, содержащих задачи для ваших элементов.
Имейте в виду, что вам нужно отключить Groovy Sandboxing, чтобы иметь возможность запускать это.
#!/usr/bin/env groovy
def getSomeFunction = { arg ->
// returns the closure with your task, function, run with the chosen parameter
return {
println(arg)
}
}
def getParalellBlock = { number ->
def myList = ['a', 'b', 'c', 'd'] // your list of items
def blockMap = [:]
1.upto(number, {
// Make sure to handle 'index out of range' kind of problems
blockMap.put(it.toString(), getSomeFunction(myList[it-1]))
})
return blockMap
}
node() {
stage('tasks') {
// you can supply the parameter from job parameters
parallel(getParalellBlock(3))
}
}