Using new jenkins declarative pipeline syntax, I'd like to test the return status of a sh script execution. Is it possible without using script step?
Script pipeline (working) :
...stage ('Check url') {node {timeout(15) {waitUntil {sleep 20def r = sh script: "wget -q ${CHECK_URL} -O /dev/null", returnStatus: truereturn (r == 0);}}}}
Declarative pipeline (try) :
...stage('Check url'){steps {timeout(15) {waitUntil {sleep 20sh script: "wget -q ${CHECK_URL} -O /dev/null", returnStatus: true == 0}}}}
log : java.lang.ClassCastException: body return value null is not boolean
Best Answer
Since it's not possible without script block, we get something like :
...stage('Check url'){steps {script {timeout(15) {waitUntil {sleep 20def r = sh script: "wget -q ${CHECK_URL} -O /dev/null", returnStatus: truereturn r == 0}}}}}