I wrote this to test the idea I saw on JENKINS-44085
def generateStage(String job, String targetVersion,
String rootVersion, Integer sleepTime=0) {
return {
stage("Deploying: ${job}") {
sleep sleepTime
println "Job: $job"
}
}
}
def deployProcs(targetVersion, rootVersion) {
script {
int sleepTime = 0
def procs = ["proc-proc", "proc-proc-high"]
def parallelStagesMap = procs.collectEntries {
["${it}" : generateStage(it, targetVersion, rootVersion, sleepTime)]
sleepTime += 5
}
timestamps {
parallel parallelStagesMap
}
}
}
node('linux') {
deployProcs(10, 10)
}
But I get
java.lang.NoSuchMethodError: No such DSL method 'generateStage' found among steps.
What am I missing?
You are calling deployProcs(10, 10) where both parameters are type of Integer. The same integer parameters are used when calling generateStage, which parameters are typed String targetVersion and String rootVersion.
A fix is to either, call deployProcs('10', '10') or change def generateStage(String job, Integer targetVersion, Integer rootVersion, Integer sleepTime=0), or remove types from generateStage function parameters.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With