Ще одна відповідь з деякими порадами, може бути корисною для когось:
не забудьте розділити свої команди за допомогою наступного правила :
command1 && command2 - означає, що команда2 буде виконана, лише якщо команда1 буде успішною
команда1 ; command2 - означає, що команда 2 буде виконана, незважаючи на результат команди1
наприклад:
String run_tests = sh(script: "set +e && cd ~/development/tests/ && gmake test ;set -e;echo 0 ", returnStdout: true).trim()
println run_tests
буде успішно виконана з set -eі echo 0команди , якщо gmake testне вдалося (тести не вдалося), а наступний код відрізала:
String run_tests = sh(script: "set +e && cd ~/development/tests/ && gmake test && set -e && echo 0 ", returnStdout: true).trim()
println run_tests
трохи неправильно, і команди set -eта echo 0in && gmake test && set -e && echo 0будуть пропущені, з println run_testsтвердженням, тому що не gmake testвдасться перестати будувати джинкіни. Як вирішення проблеми ви можете перейти до returnStatus:true, але тоді ви пропустите вихід із своєї команди.