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

1

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