Какой инструмент использовать для автоматических ночных сборок?

У меня есть несколько решений / проектов Visual Studio, над которыми я работаю в моей компании, которым теперь требуется схема для автоматических ночных сборок. Такая схема должна иметь возможность проверять последние версии из SVN, создавать решения, создавать соответствующие загружаемые файлы (включая установщики, документацию и т. Д.), Отправлять электронные письма разработчикам в случае ошибок и всех других изящных вещей., Какой инструмент или набор инструментов я должен использовать для этого?

Я использовал FinalBuilder несколько лет назад, и мне это очень понравилось, но я не уверен, поддерживают ли они такие функции, как ночные сборки и сообщения электронной почты.

8 ответов

Решение

На моей работе мы используем CCNET, но со сборками при регистрации чаще, чем каждую ночь, хотя это легко настроить для одного или обоих.

Вы можете очень легко настроить модульное тестирование, чтобы оно также выполнялось при каждой регистрации, тестировании FXCop и множестве других продуктов.

Я бы также посоветовал проверить Team City в качестве опции, потому что у него есть бесплатная версия, а отчетность и настройка, как сообщается, намного проще (мне это действительно нравится). У него есть предел где-то около 20 членов команды / проектов, прежде чем он попадает в окно окупаемости.

Тем не менее, мы начали с CCNET, и несколько продуктов стали слишком большими, чтобы смотреть на Team City в бесплатной версии, и мы очень довольны тем, что имеем.

Функции, которые помогают с CCNET включают в себя:

  • Конфигурация на основе XML - обычно вы можете скопировать и вставить большую часть того, что вам нужно.
  • Более или менее вы сможете подключить свой скрипт TreeSurgeon в качестве сценария сборки и указать CCNET на это как на исполняемую задачу для запуска компиляции.
  • Много документации и очень легко настроить nunit, ncover, fxcop и т. Д.
  • Приложение панели задач, которое в любое время сообщит вам о состоянии ваших проектов, а также может отключить электронную почту или сохранить канал RSS с той же информацией.

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

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

(Здесь есть еще одна ветка, где я опубликовал почти то же самое / с некоторыми изменениями - но некоторые другие комментарии также могут помочь! Автоматизированные сборки)

Изменить, чтобы добавить: Вы можете легко настроить свою собственную схему развертывания для CCNET, и есть множество постов в блоге, чтобы помочь, и уведомления по электронной почте могут действительно быть настроены довольно детально, или на всех успехах, на всех сбоях, когда это изменения от успеха к неудаче и т. д. В RSS также есть встроенные функции, и вы даже можете настроить собственные уведомители для других систем.

FinalBuilder поддерживает работу с электронной почтой, и только выполнение FinalBuilder каждую ночь даст вам ночные сборки. Вам не нужно другое программное обеспечение для этого, если вы не хотите.

Вы также можете использовать CCNet для запуска сборки, когда это необходимо, и заставить ее выполнить FinalBuilder для сборки. Затем вы можете решить, следует ли FinalBuilder или CCNet отправлять электронные письма.

Наконец, у FinalBuilder есть версия Server, которая похожа на CCNet в том смысле, что это инструмент непрерывной интеграции, использующий FinalBuilder. Смотрите http://www.finalbuilder.com/finalbuilder-server.aspx

Конечно, самым большим преимуществом CCNet является то, что он бесплатный и с открытым исходным кодом.

Мы только начали использовать Хадсона здесь, в офисе.

Он бесплатный и с открытым исходным кодом, имеет очень удобный пользовательский интерфейс. Плюс есть множество вариантов и плагинов.

Я был запущен через несколько минут после его установки. Все остальные разработчики здесь любят это.

В общем, это очень элегантное решение для непрерывной интеграции или ночных сборок.

Хотя это стоит, я очень рекомендую Visual Build. Он работает с MSBuild и старыми инструментами, такими как Visual Basic. Это сценарий, и может делать все, от создания установщиков до простой непрерывной интеграции.

Недавно я начал использовать CruiseControl.NET ( http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET). Это работает достаточно хорошо, хотя конфигурация может быть проще. CruiseControl.NET является бесплатным и открытым исходным кодом и, похоже, интегрируется с большинством стандартных инструментов, хотя я лично использовал его только с CVS, SVN, NUnit и MSBuild.

Luntbuild

Поддерживает широкий спектр систем контроля версий и сборки. Очень настраиваемый. Открытый исходный код. Настройка занимает некоторое время, но это не так уж и ужасно.

Buildbot с открытым исходным кодом и очень мощный тоже. Вы должны взглянуть на это.

Cascade поддерживает сборку каждого изменения, внесенного в репозиторий.

Я бы не рекомендовал делать только ночные сборки - это довольно длинное окно, в котором может появиться разрыв сборки до того, как об этом сообщат.

Другие вопросы по тегам