我有一些重试阶段,例如:
stage('Deploy') {
options {
retry(2)
}
steps {
script {
<... snip ...>
}
}
}
问题是,当这些阶段尝试失败时,即使在第二次尝试中成功,它们也会被标记为失败。
请注意,所有阶段都标记为成功,只有构建标记为失败。在图像中,重试阶段突出显示:
那正常吗?如何忽略失败的尝试?
答案 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}"
}