2016-01-12 5 views
1

У меня есть Hudson, сконфигурированный для создания проекта.Как проверить вывод консоли для определенной строки и вызвать ошибку в сборке?

И выход консоли, после того, как здание, следующим образом:

Compiling ./main.py ... 
Sorry: IndentationError: ('expected an indented block', ('./main.py', 8, 6, 'thread.start_new_thread(foo.FooThread,())\n')) 
Compiling ./udpReceiver.py ... 
<<<<< build finished! 
POST BUILD TASK : SUCCESS 
END OF POST BUILD TASK : 0 

Deleting project workspace... 
done 

Finished: SUCCESS 

Как вы можете видеть, у меня есть ошибка отступов .... и Hudson говорит, что работа с отделкой успехом.

То, что я хочу что-то вроде этого:

Проверьте, если строка «IndentationError» представлена ​​на выходной консоли текст ... если да, то чем сборка должна быть: Выполнил: НЕ СМОГЛИ!!!!!!!!

Как это сделать?

+2

Не уверен, что он совместим с Хадсон я использую Дженкинс, но, возможно, [Log Parser плагин] (https: //wiki.jenkins-ci. org/display/JENKINS/Log + Parser + Plugin) - это то, что вы ищете. Просто укажите * IndentationError * в качестве правила ошибки и проверьте, что ошибка сборки * Ошибка при ошибке * – Morfic

ответ

3

Я подтверждаю, что Log Parser plugin может выполнить задание, чтобы изменить статус сборки на сбой.

Установите плагин и создать набор правил для Python построить, например:

enter image description here

В файле создания/уаг/Библиотека/Jenkins/logParserRules/питон-ошибки:

error /IndentationError/ 

Далее обновите Python строить с этими настройками:

enter image description here

Статус сборки будет изменен на FAILURE:

Compiling ./udpReceiver.py ...' 
Sorry: IndentationError: ('expected an indented block', ('./main.py', 8, 6, 'thread.start_new_thread(foo.FooThread,())\n')) 
Compiling ./udpReceiver.py ... 
Build step 'Console output (build log) parsing' changed build result to FAILURE 
+0

спасибо. это будет то же самое для Хадсона? – waas1919

+1

Да, возможно, вам нужно установить более старую версию этого плагина, но конфигурация будет идентичной. Если это решение работает, не забудьте отметить мое решение как хорошее :) –