Система автоматизированной сборки Hudson
by Bozaro on Мар.29, 2009, under Софт для разработки ПО
Hudson для меня стал одним из открытий прошлого года.
Нужно было решить простую задачу – найти систему для автоматического создания ночных билдов.
Цель у этой задачи проста: в случае, если кто-то накосячил и перестали проходить тесты или вообще ничего не компилируется, об этом нужно узнать как можно раньше.
Требования были следующие:
- Бесплатность;
- Возможность добавления нескольких скриптов для сборки;
- Запуск сборки с указанной периодичностью;
- Возможность ручного запуска сбоки;
- Уведомления о провалившихся сборках;
- Хранение последних артефактов сборки;
- Возможность посмотреть лог провалившейся сборки;
- WEB-интерфейс.
До этого для сборки проектов просто запускались скрипты на сборочной машине (скрипты были написаны наа Python, но это не важно).
Это работало, но имело ряд неудобств. Основные из них:
- После запуска сборки нужно самому залезть и убедиться в её окончании, о чем забываешь;
- Если сборка провалилась, трудно искать проблему;
- Нельзя назначить следующую сборку, пока идет предыдущая;
- Нет сборки по расписанию.
В итоге набрел на Hudson – https://hudson.dev.java.net/.
При всей своей простоте он с лихвой перекрыл все имеющиеся к нему требования. Устанавливается он без каких либо проблем под Java Application Server (я использовал TomCat): сразу после разворачивания war-файла готов к работе.
Краткий перечень вкусностей, которые он предоставляет (многие через плагины):
- Централизованная установка плагинов;
- Сборка после изменения исходного кода в системе контроля версий (поддерживает GIT, Subversion, CVS и др.);
- Строит графики результатов сборки, объема занимаемого места, кол-ва TODO-шек и т.п.;
- Возможность авторизации через LDAP;
- Интеграция с Trac, Bugzilla, Jira и др.;
- Можно задать, какие проекты нельзя собирать параллельно;
- Возможность создания распределенных сборщиков (полезно для сборки под разным окружением, например Windows и Linux).
Так что если у кого есть потребность в системе автоматизированной сборки – советую глянуть.
Март 29th, 2009 on 20:50
мы у себя просто перловым скриптом пользуемся… а потом его в планировщик.
Там мы реализовали почти все требования, которые ты указал, кроме веб-интерфейса + уведомления об удачном завершении сборки + запуск сборки дистрибутива (а под Линухами еще и подготовка шаблонного файла для InstallJammer) + копирование дистрибутива по нужным папкам (в том числе и ftp) + проверка – были ли коммиты с прошлого раза.
Вопрос – имеет ли смысл встраивать уже готовую систему, когда зачастую проще набросать скрипт самому?
Март 30th, 2009 on 08:00
Я бы на твоем месте посмотрел Hudson. Сам по себе он ничего компилировать не умеет, но добавить удобную обертку к имеющимся скриптам может.
Времени на установку TomCat+Jasper уходит минут 20. Работает оно из коробки без какой-либо предварительной настройки.