Я использую сценарий оболочки в 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 + test кажется мне чем-то вроде взлома.
Есть ли способ сделать это в Jenkins, чтобы я мог видеть вывод, а также проверять, соответствует ли он определенной строке?