Ще одна відповідь з деякими порадами, може бути корисною для когось:
не забудьте розділити свої команди за допомогою наступного правила :
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 0
in && gmake test && set -e && echo 0
будуть пропущені, з println run_tests
твердженням, тому що не gmake test
вдасться перестати будувати джинкіни. Як вирішення проблеми ви можете перейти до returnStatus:true
, але тоді ви пропустите вихід із своєї команди.