когда я использую «выполнить сценарий оболочки на удаленном хосте с использованием ssh» в jenkins, возникает ошибка, но он все равно успешно выполняется. Как это исправить?

#jenkins

#дженкинс

Вопрос:

Я использую Jenkins для развертывания своего проекта. Я создал задание, которое выполняет сценарий оболочки на удаленном хосте с использованием ssh.

Есть мои скрипты.

 cd my-project;
git pull;
npm install;
npm test;
pm2 update;
 

Например, при сбое какого-либо скрипта

 GitLab: The project you were looking for could not be found.
fatal: Could not read from remote repository.
 

Команды будут продолжены для выполнения, и вывод Дженкинса будет «Завершен: УСПЕХ».

Но я ожидаю, что он не сможет построить.

Как мне его приготовить?

Ответ №1:

Дженкинс считает запуск скрипта успешным, если он возвращает нулевой код выхода, и сбой, если нет. По умолчанию весь код завершения скрипта является кодом последней выполненной команды.
Вы можете использовать set -e в начале своего скрипта для немедленного выхода, если какая-либо команда заканчивается ненулевым кодом выхода. Или, если вам нужно выполнить все команды, установите промежуточную переменную и верните ее значение в конце.