Bozaro

Система автоматизированной сборки Hudson

by on Мар.29, 2009, under Софт для разработки ПО

Hudson для меня стал одним из открытий прошлого года.

Нужно было решить простую задачу – найти систему для автоматического создания ночных билдов.

Цель у этой задачи проста: в случае, если кто-то накосячил и перестали проходить тесты или вообще ничего не компилируется, об этом нужно узнать как можно раньше.

Требования были следующие:

  1. Бесплатность;
  2. Возможность добавления нескольких скриптов для сборки;
  3. Запуск сборки с указанной периодичностью;
  4. Возможность ручного запуска сбоки;
  5. Уведомления о провалившихся сборках;
  6. Хранение последних артефактов сборки;
  7. Возможность посмотреть лог провалившейся сборки;
  8. WEB-интерфейс.

До этого для сборки проектов просто запускались скрипты на сборочной машине (скрипты были написаны наа Python, но это не важно).

Это работало, но имело ряд неудобств. Основные из них:

  1. После запуска сборки нужно самому залезть и убедиться в её окончании, о чем забываешь;
  2. Если сборка провалилась, трудно искать проблему;
  3. Нельзя назначить следующую сборку, пока идет предыдущая;
  4. Нет сборки по расписанию.

В итоге набрел на Hudson – https://hudson.dev.java.net/.

При всей своей простоте он с лихвой перекрыл все имеющиеся к нему требования. Устанавливается он без каких либо проблем под Java Application Server (я использовал TomCat): сразу после разворачивания war-файла готов к работе.

Краткий перечень вкусностей, которые он предоставляет (многие через плагины):

  1. Централизованная установка плагинов;
  2. Сборка после изменения исходного кода в системе контроля версий (поддерживает GIT, Subversion, CVS и др.);
  3. Строит графики результатов сборки, объема занимаемого места, кол-ва TODO-шек и т.п.;
  4. Возможность авторизации через LDAP;
  5. Интеграция с Trac, Bugzilla, Jira и др.;
  6. Можно задать, какие проекты нельзя собирать параллельно;
  7. Возможность создания распределенных сборщиков (полезно для сборки под разным окружением, например Windows и Linux).

Так что если у кого есть потребность в системе автоматизированной сборки – советую глянуть.

:,

2 Comments for this entry

  • mich

    мы у себя просто перловым скриптом пользуемся… а потом его в планировщик.
    Там мы реализовали почти все требования, которые ты указал, кроме веб-интерфейса + уведомления об удачном завершении сборки + запуск сборки дистрибутива (а под Линухами еще и подготовка шаблонного файла для InstallJammer) + копирование дистрибутива по нужным папкам (в том числе и ftp) + проверка – были ли коммиты с прошлого раза.

    Вопрос – имеет ли смысл встраивать уже готовую систему, когда зачастую проще набросать скрипт самому?

    • Bozaro

      Я бы на твоем месте посмотрел Hudson. Сам по себе он ничего компилировать не умеет, но добавить удобную обертку к имеющимся скриптам может.
      Времени на установку TomCat+Jasper уходит минут 20. Работает оно из коробки без какой-либо предварительной настройки.

Leave a Reply

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...