Назад | Перейти на главную страницу

Как вы можете добавить в Jenkins тест командной строки, который считывает код выхода?

Я хочу добавить в Jenkins сценарий командной строки как часть процесса сборки. Этот сценарий командной строки завершится с кодом ошибки 0 если дела будут успешными или 666 если не получится. Я хочу остановить сборку, если этот сценарий не сработает.

Можно ли это сделать с помощью Дженкинса? Если да, то как?

Будьте осторожны при выходе с кодами выше 255. Коды выхода должны быть в диапазоне 0-255. 0 означает успех, остальные 1-255 - коды ошибок. Вы также должны избегать зарезервированные коды ошибок которые имеют определенные значения.

cmp@cmp-dev:~$ bash --version
GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Вот выход 666:

$ bash
$ exit 666
exit
$ echo $?
154

Он завершается 255:

$ bash 
$ exit 256
exit
$ echo $?
0

Придерживайтесь 255 и меньше и избегайте зарезервированные коды ошибок (лучше, черт возьми, ты знаешь, а?)

Ваш сценарий сборки bash может set -e перед запуском теста.

set -e приведет к тому, что Jenkins остановит сборку, если во время сборки будет ненулевой статус выхода. У вас будет что-то вроде этого в поле Execute Shell в конфигурации проекта:

set -e
yourcommand1
yourcommand2

Вот некоторая документация по параметрам bash.