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