对Jenkinsfile执行成功发布条件时出错

时间:2019-12-13 17:25:29

标签: jenkins groovy jenkins-pipeline jenkins-groovy

我试图在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块,我不会收到任何错误。

1 个答案:

答案 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
}

希望有帮助。