0

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

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}")] 
        
       
    }
}

现在,假设其中一个阶段是失败的管道作业正在结束。我需要继续下一个阶段,即使前一个是失败的。我试过传播:假值。但在这种情况下,它正在转移到下一份工作,但标志着所有阶段的成功。我仍然希望将它们视为失败

4

1 回答 1

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)]
            }
        }
    }]
}
于 2021-06-28T17:39:31.033 回答