If statement Jenkins管道-if语句总是返回false

If statement Jenkins管道-if语句总是返回false,if-statement,jenkins,jenkins-pipeline,If Statement,Jenkins,Jenkins Pipeline,我现在有个问题。我正在使用openshift,并尝试使用if语句,这取决于在单独容器中的集成测试是否成功。这是我的代码片段 podTemplate(.... ){ node(myLabel){ container('jnlp'){ ... stage(Integration Tests){ ... script{ def status = sh(script: 'oc describe pod myapp

我现在有个问题。我正在使用openshift,并尝试使用if语句,这取决于在单独容器中的集成测试是否成功。这是我的代码片段

podTemplate(....

){
  node(myLabel){
    container('jnlp'){
      ...
      stage(Integration Tests){
        ...
         script{
          def status = sh(script: 'oc describe pod myapps-integration-tests | grep -i status: | awk {\'print $2\'}', returnStdout: true)
          echo "Status of Interation Test Job ${status}"
          echo status
          if("${status}" == "Succeeded"){             
            echo "Integration tests successfull"  
          } else {              
            echo "Integration Tests failed"
            error("The integration tests failed.")              
          }
        }
        ...
}
现在的问题是,if语句总是返回false。状态回显为successed,但语句仍返回false。我试过使用和不使用脚本块。我试过了

if(status == "Succeeded")

但仍然如此。它总是告诉我我的集成测试失败了。如果我将语句替换为“succeed”==“succeed”只是为了测试,那么它将按预期通过。有人知道我做错了什么吗?

你试过调整输出吗?它可能包含空格/新行:

if (status.trim() == "Succeeded")
您可以尝试的其他解决方案:

if (status.contains("Succeeded"))

天哪。就这么简单。有点让你觉得自己很愚蠢:顺便说一句,在我接受答案之前还有4分钟