Перенаправление вывода командной строки в Jenkins в файл

#shell #jenkins

#оболочка #дженкинс

Вопрос:

У меня есть задание в jenkins, которое выполняет множество скриптов python в оболочке:

 #!/bin/bash -x
mkdir -p $WORKSPACE/validation/regression
rm -f $WORKSPACE/validation/regression/*.latest

cd $WORKSPACE/PythonTests/src/
# Execute test cases
python tests.py 031 > $WORKSPACE/validation/regression/TP031output_b$BUILD_NUMBER.log
python tests.py 052 > $WORKSPACE/validation/regression/TP052output_b$BUILD_NUMBER.log
python tests.py 060 > $WORKSPACE/validation/regression/TP060output_b$BUILD_NUMBER.log
  

Мое намерение состоит в том, чтобы каждый вывод скрипта (который я могу видеть в своем терминале, если я выполняю их вручную) сохранялся в файле журнала с этим классическим перенаправлением.

Раньше это работало, но теперь это просто создает пустой файл. Я не могу выяснить, что изменилось с тех пор.

Есть какой-нибудь намек?

Комментарии:

1. Это вывод, который вы видите из «stderror».

2. @Jayan — это не ‘>’ для стандартного вывода, а ‘>amp;’ как для стандартного вывода, так и для stderror?

Ответ №1:

У меня это сработало в Jenkins Build execute shell:

 [command] 2>amp;1 | tee [outputfile]