当它具有for循环时,如何处理管道中的异常?

时间:2019-06-03 09:31:46

标签: jenkins jenkins-pipeline jenkins-plugins jenkins-groovy

我有一个管道作业,该管道作业执行一些操作序列(例如,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)。 我该怎么办?

0 个答案:

没有答案