If statement Jenkins管道-if语句总是返回false
我现在有个问题。我正在使用openshift,并尝试使用if语句,这取决于在单独容器中的集成测试是否成功。这是我的代码片段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
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分钟