Я пытаюсь создать обобщенный c метод, который принимает n чисел замыканий и запускает каждое замыкание параллельно. Мне нужна хорошая читабельность в журнале консоли, и поэтому я пытаюсь программно предоставить осмысленное имя каждому этапу.
В методе makeRunParallelSteps () как получить имя этапа из замыкания?
Пример:
Closure car = {
stage("Car"){
println("car")
}
}
Closure bike = {
stage("Bike"){
println("bike")
}
}
Closure train = {
stage("Train"){
println("train")
}
}
Closure plane = {
stage("Plane"){
println("plane")
}
}
Closure ship = {
stage("Ship"){
println("ship")
}
}
void makeRunParallelSteps(Closure... args){
LinkedHashMap parallelSteps = [:]
for(int i=0; i < args.length; i++){
Closure temp = args[i]
//String stageNameOfClosure = temp.doSomethingTogetStageName() // Reflection?
parallelSteps["Stage Name from closure - ${i}"] = {
timestamps {
timeout(5) {
temp()
}
}
}
}
parallelSteps << [failFast : true]
parallel parallelSteps
parallelSteps.clear()
}
//makeRunParallelSteps(car, bike)
//makeRunParallelSteps(car, bike, plane)
//makeRunParallelSteps(car, bike, plane, train)
makeRunParallelSteps(car, bike, plane, train, ship)