我目前有问题。我正在使用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。状态回显为成功,但该语句仍返回false。我尝试了有无脚本块。我尝试过
if(status == "Succeeded")
但还是。它总是告诉我我的集成测试失败。如果我将语句替换为“ Succeeded” ==“ Succeeded”仅用于测试,则它按预期通过。有人知道我在做什么错吗?
答案 0 :(得分:1)
您是否尝试过修剪输出?它可能包含空格/换行符:
if (status.trim() == "Succeeded")
您可能会尝试的其他解决方案:
if (status.contains("Succeeded"))