Я использую сценарий оболочки в Jenkins, который в определенный момент загружает файл на сервер, используя curl. Я хотел бы увидеть, какой вывод выдает curl, но также проверить, ожидаю ли это вывод. Если это не так, то я хочу установить код ошибки оболочки на> 0, чтобы Дженкинс знал, что скрипт не выполнен.
Сначала я попытался использовать curl -f
, но это приводит к тому, что канал обрезается, как только загрузка завершается неудачно и вывод ошибок никогда не попадает на клиент. Тогда я попробовал что-то вроде этого:
curl ...params... | tee /dev/tty | \
xargs -I{} test "Expected output string" = '{}'
Это работает из обычной оболочки SSH, но в выводе консоли Jenkins я вижу:
tee: /dev/tty: No such device or address
Я не уверен, почему это так, потому что я думал, что Дженкинс общался с ведомым, используя обычную оболочку SSH. В любом случае, вся эта проверка на xargs + показалась мне хакерской.
Есть ли способ сделать это в Jenkins, чтобы я мог видеть выходные данные, а также проверять, соответствует ли они определенной строке?