我正在Jenkins v.2.8中构建管道工作流程。我想要实现的是构建一个步骤,该步骤将使用不同的参数同时多次触发相同的作业。
示例:我有一个名为“Master”的worfklow,它有一步,这一步是读取我的参数“Number”,这是一个带有多个选择选项的复选框。因此,用户可以触发工作流程并选择数字选项,如“1,2,3”。现在,当执行此步骤时,我想要实现它调用我的作业“Master_Child”并同时触发具有3个不同参数的“Master_Child”。
我试着这样做:
stage('MyStep') {
steps {
echo 'Deploying MyStep'
script {
env.NUMBER.split(',').each {
build job: 'Master_Child', parameters: [string(name: 'NUMBER', value: "$it")]
}
}
}
}
但有了它,它会读取第一个参数触发带有参数1的Mast_Child并等待直到作业完成,当作业完成时它会触发与参数2相同的作业。
如果我在作业调用中使用 wait:false ,那么管道工作流只会使用不同的参数调用此作业,但如果子作业失败则不会依赖它。
任何想法如何实现? 先感谢您。
答案 0 :(得分:2)
我以这种方式解决了我的问题。
stage('MyStage') {
steps {
echo 'Deploying MyStep'
script {
def numbers = [:]
env.NUMBER.split(',').each {
numbers["numbers${it}"] = {
build job: 'Master_Child', parameters: [string(name: 'NUMBER', value: "$it")]
}
}
parallel numbers
}
}
}
答案 1 :(得分:1)
将构建作业语法中的wait
设置为false wait: false
stage('MyStep') {
steps {
echo 'Deploying MyStep'
script {
env.NUMBER.split(',').each {
build job: 'Master_Child', parameters: [string(name: 'NUMBER', value: "$it")], wait: false
}
}
}
}