Почему buildbot * НЕ * терпит неудачу, когда должен? - PullRequest
2 голосов
/ 05 декабря 2011

Я пытаюсь исправить очень сложную базовую систему сборки buildbot, которая имеет раздражающую привычку показывать зеленые столбцы с 'fail (1)' в них.

Проблема в том, что мы запускаем несколько команд, используя шаг сборки ShellCommand, который не завершается с ошибкой всей сборки, когда он возвращает ненулевое значение.

У нас также есть шаги, которые отображаются красным на странице сведений, но вся сборка по-прежнему отображается зеленым.

Насколько известно, flunkOnFailure не установлен на самих шагах в моем master.cfg, и по умолчанию установлено значение true. (Хотя это не совсем понятно из страниц справочника, которые я нашел)

Что мне нужно сделать (или отменить), чтобы убедиться, что при сборке ShellCommand происходит сбой всей сборки?

Это работает на 100% среде Linux.

Большое спасибо.

Ответы [ 2 ]

4 голосов
/ 07 декабря 2011

Когда вы добавляете шаг к фабрике (т. Е. F.addStep (your_step)), вы должны указать haltOnFailure = True, чтобы сделать полную сборку неудачной, когда конкретный шаг сборки возвращает FAILURE.

2 голосов
/ 05 февраля 2012

Значение по умолчанию для flunkOnFailure равно False в BuildStep.Различные подклассы переопределяют это значение по умолчанию, в частности ShellCommand.Я бы предположил, что для отдельных шагов красного цвета с конечным результатом сборки зеленого цвета не установлено flunkOnFailure.

С другой стороны, возможно, что haltOnFailure isn 't, поэтому другие шаги выполняются и выполняются успешно, но общий результат сборки все еще не выполнен.Успешные шаги будут по-прежнему зелеными, даже если они следуют за ошибочным шагом.В частности, тело страницы водопада не указывает, была ли конкретная сборка успешной или неудачной, в целом (хотя прямоугольники в верхней части указывают результат последней сборки. На странице сетки или недавней сборки будут показаны результаты).из сборок ясно.

...