【发布时间】:2021-12-02 22:03:17
【问题描述】:
Jenkins v2.263.3
我有以下代码,旨在将 zip 文件上传到我们的私人 Nexus 存储库。我希望它尝试 3 次。请注意,所有使用的变量都在脚本的其他地方定义,并且都是有效的。
withCredentials([[$class: 'UsernamePasswordMultiBinding',
credentialsId:'nexus-user',
usernameVariable: 'NEXUS_USR',
passwordVariable: 'NEXUS_PW']]) {
final Integer maxTries = 3
Integer numTries = 1
retry(maxTries) {
timeout(time: 5) { // Timeout in minutes
println "Trying $numTries/$maxTries upload to file server."
numTries++
sh """
curl -v -u $NEXUS_USR:$NEXUS_PW --upload-file $artifact $remoteUrl/$remoteDir/$artifact
"""
}
}
}
但是,当管道在第一次尝试后失败时就退出,也就是说,它只是忽略了retry{} 块。我错过了什么?
【问题讨论】:
-
您的
shstep 方法的失败是否会引发异常,还是仅返回退出代码> 1? -
它只是返回一个非零错误代码。