Автоматизированные сборки
В настоящее время я использую 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 из коробки и очень активно поддерживается.
Я очень люблю buildbot. Это открытый исходный код, написанный на python и очень простой в развертывании, разработке и обслуживании. Он легко интегрируется с SVN и большинством других систем контроля версий. Все ваши сценарии сборки - это код на python, поэтому вы обладаете большой гибкостью в плане возможностей основных сценариев Build Master. Конечно, вы также можете использовать его для запуска любого другого типа сценария или командного файла.
Вы можете проверить некоторые примеры buildbot в действии:
Мы используем CruiseControl.NET с NAnt и MsBuild для нашего сервера сборки. Мы настроили его так, чтобы он собирал сборки каждый раз, когда мы проверяем код, а также ночные сборки.
Cascade поддерживает сборку каждого изменения, внесенного в репозиторий.
Я использую FinalBuilder уже несколько лет. Преимущество FinalBuilder в том, что он делает гораздо больше, чем просто строит. У меня есть настройка для анализа результатов, создания архивов сборок, отправки журналов ошибок и т. Д. Последняя версия имеет веб-интерфейс, который позволяет экспертам не пускать сборки в один клик.
Вы можете рассмотреть CI-Factory. Это конструктор среды непрерывной интеграции, который использует CruiseControl.NET и дюжину других инструментов. Здесь есть отличный скринкаст: http://www.dnrtv.com/default.aspx?showID=64