即使一个阶段失败,也要继续管道作业

时间:2021-06-28 17:16:58

标签: jenkins

这是我正在使用的管道脚本

def map = [FRA1: "192.168.1.1", DEL: "192.168.1.2", NYC: "192.168.1.3"]
map.each { key, value ->
    echo "${key} ${value}"
    stage("job test-${key}"){           
       build job: 'jobcheck', parameters: [string(name: 'DC-NAME',value: "${value}")] 
        
       
    }
}

现在,假设管道作业失败的阶段之一正在结束。我需要继续下一个阶段,即使前一个阶段失败。 我试过传播:假值。但在这种情况下,它会转移到下一份工作,但在所有阶段都取得成功。我还是想把他们看成失败

1 个答案:

答案 0 :(得分:0)

您可以使用 catchError 关键字来实现您想要的目标,它将捕获异常(当构建失败时)并将阶段结果和构建结果设置为您想要的选项。
例如:

def map = [FRA1: "192.168.1.1", DEL: "192.168.1.2", NYC: "192.168.1.3"]
map.collectEntries {key, value ->
    ["Running ${key} ${value}" : {
        stage("Triggering another job- ${key}") {
            catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') {
                build job: 'testjobcheck', parameters: [string(name: 'DC-NAME', value: value)]
            }
        }
    }]
}