我有一个管道作业,该管道作业执行一些操作序列(例如,Build >> Run >> Report)。我已经将此序列放入for循环中,因为我可以获得一个具有值列表的参数,对此我应该重复相同的序列。请找到我编写的示例代码。
param_val = params.param_1
param_list = param_val.split()
for (int i = 0; i < size(param_list); ++i){
item_value = param_list[i].trim()
builds[i] ={
stage('Build') {
build 'Build', parameters: [string(name: 'item', value: item_value)]
}
stage('Run') {
build 'Run', parameters: [string(name: 'item', value: item_value)]
}
stage('Reporting') {
build 'Reporting', parameters: [string(name: 'item', value: item_value)]
}
}parallel builds
}
现在,当for循环迭代之一的某个阶段失败时,整个管道也将失败。我需要对其进行修改以仅使一个迭代(序列)失败,而其他迭代应继续运行。 示例:如果我在param_val中有3个值(一个,两个,三个),则将触发3个序列。
Branch: 0 => Build(item:one) >> Run(item:one) >> Reporting(item:one)
Branch: 1 => Build(item:two) >> **Run(item:two)** >> Reporting(item:two)
Branch: 2 => Build(item:three) >> Run(item:three) >> Reporting(item:three)
如果在此Branch 1中:Run(item:two)失败,则所有迭代(Branch0,Branch2和Branch1)将停止,并且管道作业将被标记为失败。
我希望管线继续执行其他迭代(Branch0和Branch2)。 我该怎么办?