我正在尝试在success
块中添加条件语句,并且我正在使用script
块添加if
语句,因为不允许在阶段指令之外使用when
语句。从本质上讲,如果我正在检查的变量不为真,我希望 Jenkins 管道结束并且不通知任何成功。
post {
success {
script {
if (/* checking if a variable is true */) {
exit 0
}
}
// proceed to notify build was successful
}
failure {
// proceed to notify build failed
}
always {
// delete directories
}
}
但是当我执行 Jenkins 构建时,我收到以下错误消息:
Error when executing success post condition:
hudson.AbortException: script returned exit code 128
那么,在if
语句中结束或终止管道的正确方法是什么?我知道错误不在于我通知成功的方式,因为如果我删除整个script
块,我不会收到任何错误。
你可以使用 Jenkins 全局变量:"currentBuild">
您在自己的服务器上有一个列表: https://yourJenkins/pipeline-syntax/globals#currentBuild
currentBuild.result == 'SUCCESS'
就个人而言,我通常以以下内容结束我的管道(脚本(:
if (currentBuild.result == "FAILURE" || currentBuild.result == "UNSTABLE") {
step ([$class: 'Mailer', recipients: 'xxx@xxx.com'])
} else {
cleanWs cleanWhenFailure: false
}
希望对您有所帮助。