重试阶段会将构建标记为失败

时间:2018-07-23 11:51:37

标签: jenkins groovy

我有一些重试阶段,例如:

stage('Deploy') {
    options {
        retry(2)
    }
    steps {
        script {
            <... snip ...>
        }
    }
}

问题是,当这些阶段尝试失败时,即使在第二次尝试中成功,它们也会被标记为失败。

请注意,所有阶段都标记为成功,只有构建标记为失败。在图像中,重试阶段突出显示: Stages

那正常吗?如何忽略失败的尝试?

1 个答案:

答案 0 :(得分:0)

万一有人遇到相同的问题,我将使用自己的try / catch函数,将错误显示为红色:

def retry(retries, block) {
    while(retries > 0) {
        retries--
        try {           
            block(retries)
            return
        } catch(Exception exception) {
            printf "######################################\n" + 
                   "\u001B[31mFAILED!!! Retries left = " + retries + "\n" +
                   "ERROR:\n" + exception.toString() + "\n" +
                   "STACK TRACE:\n" + exception.getStackTrace() + "\u001B[0m\n" +        
                   "######################################"
            if(retries == 0) {
                throw exception
            }
        }
    }
}

可以这样使用:

retry(3) { retriesLeft ->
    printf "retries left: ${retriesLeft}"
}