Это немного.. тщеславный вопрос, но вывод BuildBot не особенно приятно смотреть.
Например, по сравнению с..
.. и другие, BuildBot выглядит довольно.. архаично
Сейчас я играю с Hudson, но он очень ориентирован на Java (хотя с этим руководством мне было проще настроить, чем BuildBot, и предоставил дополнительную информацию)
В принципе: существуют ли какие-либо системы непрерывной интеграции, предназначенные для python, которые создают множество блестящих графиков и подобных?
Обновление:. С тех пор проект Jenkins заменил Хадсона как общую версию пакета. Оригинальные авторы также перешли к этому проекту. Jenkins теперь является стандартным пакетом на Ubuntu/Debian, RedHat/Fedora/CentOS и других. Следующее обновление по-прежнему является практически правильным. Отправной точкой для этого с Jenkins является другое.
Обновление:. Попробовав несколько альтернатив, я думаю, что я буду придерживаться Хадсона. Integrity был приятным и простым, но весьма ограниченным. Я думаю, что Buildbot лучше подходит для работы с несколькими подчиненными строками, а не для всего, что работает на одной машине, как я ее использовал.
Настройка Hudson для проекта Python была довольно простой:
- Загрузить Hudson из http://hudson-ci.org/
- Запустите его с помощью
java -jar hudson.war
- Откройте веб-интерфейс по адресу по умолчанию
http://localhost:8080
- Перейдите к разделу "Управление хадсон", "Плагины", нажмите "Обновить" или аналогичный
- Установите плагин Git (мне нужно было установить путь
git
в глобальных настройках Хадсона) - Создайте новый проект, введите репозиторий, интервалы опроса SCM и т.д.
- Установите
nosetests
черезeasy_install
, если он еще не - На этапе сборки добавьте
nosetests --with-xunit --verbose
- Отметьте "Опубликовать отчет о результатах теста JUnit" и установите "XML-протоколы отчета об испытаниях" на
**/nosetests.xml
Это все, что нужно. Вы можете настроить уведомления по электронной почте, и плагины заслуживают внимания. Несколько, которые я сейчас использую для проектов Python:
- Плагин SLOCCount для подсчета строк кода (и графика!) - вам нужно установить sloccount отдельно
- Violations для синтаксического анализа выхода PyLint (вы можете настроить пороговые значения предупреждений, рассчитать количество нарушений над каждой сборкой)
- Cobertura может анализировать вывод coverage.py. Nosetest может собирать покрытие во время выполнения ваших тестов, используя
nosetests --with-coverage
(это записывает вывод в**/coverage.xml
)