我试图在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
块,我不会收到任何错误。
答案 0 :(得分:0)
您可以使用Jenkins全局变量:'currentBuild'
您在自己的服务器上有一个列表: https://yourJenkins/pipeline-syntax/globals#currentBuild
currentBuild.result =='成功'
我个人通常以类似以下内容结束管道(脚本):
if (currentBuild.result == "FAILURE" || currentBuild.result == "UNSTABLE") {
step ([$class: 'Mailer', recipients: 'xxx@xxx.com'])
} else {
cleanWs cleanWhenFailure: false
}
希望有帮助。