Автоматизированные сборки

В настоящее время я использую Subversion для контроля версий через AhnkSVN и Visual Studio. Недавно я начал использовать Tree Surgeon для настройки своих проектов. Он автоматически создает скрипт сборки, используя NAnt. Я хотел бы иметь возможность автоматизировать регулярную сборку проектов в SVN. Мне нравится идея делать сборку при каждой регистрации, но ночные сборки тоже подойдут. Я хотел бы дать больше информации или больше своих мыслей, но решил, что оставлю это открытым и посмотрим, что скажет сообщество SO.

10 ответов

Решение

Вы можете использовать CruiseControl.Net, который может выполнять сборку при каждой регистрации, ночных сборках или по вашему желанию. Быстрый поиск в Google показывает, что CC.Net уже имеет некоторую интеграцию с NAnt.

Как уже упоминалось, мы используем здесь CCNET, который мы обычно не работаем над ночной сборкой, а вместо этого используем стратегию непрерывной интеграции (каждую регистрацию).

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

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

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

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

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

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

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

CruiseControl.NET - ваш лучший вариант, на мой взгляд. При необходимости его легко расширить с помощью пользовательских задач, он работает как с NAnt, так и с MSBuild из коробки и очень активно поддерживается.

Есть также Draco.NET, который был вдохновлен CruiseControl.NET и немного более легкий. См. Эту статью для получения дополнительной информации об обоих решениях непрерывной интеграции.

Я очень люблю buildbot. Это открытый исходный код, написанный на python и очень простой в развертывании, разработке и обслуживании. Он легко интегрируется с SVN и большинством других систем контроля версий. Все ваши сценарии сборки - это код на python, поэтому вы обладаете большой гибкостью в плане возможностей основных сценариев Build Master. Конечно, вы также можете использовать его для запуска любого другого типа сценария или командного файла.

Вы можете проверить некоторые примеры buildbot в действии:

Я предлагаю TeamCity.:)

Мы используем CruiseControl.NET с NAnt и MsBuild для нашего сервера сборки. Мы настроили его так, чтобы он собирал сборки каждый раз, когда мы проверяем код, а также ночные сборки.

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

Я использую FinalBuilder уже несколько лет. Преимущество FinalBuilder в том, что он делает гораздо больше, чем просто строит. У меня есть настройка для анализа результатов, создания архивов сборок, отправки журналов ошибок и т. Д. Последняя версия имеет веб-интерфейс, который позволяет экспертам не пускать сборки в один клик.

Вы можете рассмотреть CI-Factory. Это конструктор среды непрерывной интеграции, который использует CruiseControl.NET и дюжину других инструментов. Здесь есть отличный скринкаст: http://www.dnrtv.com/default.aspx?showID=64

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