Satu lagi jawaban dengan beberapa tips, dapat bermanfaat bagi seseorang:
ingatlah untuk memisahkan perintah Anda dengan aturan berikut :
command1 && command2 - artinya, perintah2 itu akan dieksekusi, hanya jika command1 berhasil
command1 ;command2 - artinya, perintah 2 itu akan dieksekusi meskipun berdasarkan perintah1
sebagai contoh:
String run_tests = sh(script: "set +e && cd ~/development/tests/ && gmake test ;set -e;echo 0 ", returnStdout: true).trim()
println run_tests
akan dieksekusi dengan set -e
dan echo 0
perintah berhasil jika gmake test
gagal (tes Anda gagal), sementara kode berikut dipotong:
String run_tests = sh(script: "set +e && cd ~/development/tests/ && gmake test && set -e && echo 0 ", returnStdout: true).trim()
println run_tests
sedikit salah dan perintah set -e
dan echo 0
di && gmake test && set -e && echo 0
akan dilewati, dengan println run_tests
pernyataan, karena gagal gmake test
akan membatalkan jenkins membangun. Sebagai solusi Anda dapat beralih ke returnStatus:true
, tetapi kemudian Anda akan kehilangan output dari perintah Anda.