Автоматизированные сборки
-
09-06-2019 - |
Вопрос
В настоящее время я использую подрывная деятельность для моего контроля версий через Анксвн и Visual Studio.Недавно я начал использовать Древесный Хирург для настройки моих проектов.Он автоматически создает сценарий сборки, используя NAnt.Я хотел бы иметь возможность регулярно автоматизировать сборку проектов в SVN.Мне нравится идея делать сборку при каждой регистрации, но ночные сборки также будут работать.Я бы поделился дополнительной информацией или своими мыслями, но решил оставить это открытым и посмотреть, что скажет сообщество SO.
Решение
Вы можете использовать CruiseControl.Net , который может делать сборку при каждой регистрации, ночных сборках или как вы захотите. Быстрый поиск в Google показывает, что CC.Net уже имеет некоторую интеграцию с NAnt . / р>
Другие советы
Как упоминали другие, здесь мы используем CCNET, с которым мы обычно не работаем при ночной сборке, а вместо этого используем стратегию непрерывной интеграции (при каждой регистрации).
Я бы посоветовал делать то же самое, будь то самостоятельно или в команде, потому что вы можете очень легко настроить модульное тестирование для запуска при каждой регистрации, тестирование FxCop и множество других продуктов.
Если в команде из одного человека только вы и у вас не слишком много проектов на ходу, я бы также посоветовал проверить Город команды как вариант, потому что у него бесплатная версия, а отчетность и настройка, как сообщается, намного проще (мне это действительно нравится).
Тем не менее, мы начали с CCNET и сделали несколько продуктов слишком большими, чтобы смотреть Team City в бесплатной версии, и мы очень довольны тем, что у нас есть.
Функции, которые помогают с CCNET, включают:
- Конфигурация на основе XML - обычно вы можете скопировать и вставить большую часть того, что вам нужно.
- Более или менее вы сможете подключить свой скрипт treesurgeon в качестве сценария сборки и указать CCNET на это как на исполняемую задачу для запуска компиляции.
- Множество документации и очень простая настройка nunit, ncover, fxcop и т.д.
- Приложение на панели задач, которое в любой момент сообщит вам о статусе ваших проектов, а также может отправлять электронные письма или сохранять RSS-канал с той же информацией.
Но я бы определенно выбрал запуск сборки CI при каждой регистрации - по большей части модульные тесты будут выполняться перед регистрацией, но пусть сервер CCNET обрабатывает запуск любых приложений / сборок, которые будут зависеть от сборки, которую мы проверяем, и они будут заново собраны и повторно протестированы при каждой регистрации.
Учитывая, что это бесплатно и занимает очень мало времени на настройку, я бы настоятельно рекомендовал просто воспользоваться этим.
CruiseControl.NET - ваш лучший вариант, на мой взгляд. Его довольно легко расширить с помощью пользовательских задач, если необходимо, он работает как с NAnt, так и с MSBuild из коробки и очень активно поддерживается.
Я предлагаю TeamCity . :) Р>
Я очень люблю строительный бот.Он с открытым исходным кодом, написан на python и очень прост в развертывании, разработке и обслуживании.Он легко интегрируется с svn и большинством других систем управления версиями.Все ваши сценарии сборки - это код на Python, поэтому у вас есть большая гибкость с точки зрения того, что могут делать ваши основные сценарии сборки.Конечно, вы также можете использовать его для запуска любого другого типа скрипта или пакетного файла.
Вы могли бы ознакомиться с некоторыми примерами buildbot в действии:
Вы можете рассмотреть CI-Factory. Это построитель среды непрерывной интеграции, который использует CruiseControl.NET и дюжину других инструментов. Здесь есть отличный скринкаст: http://www.dnrtv.com/default.aspx? showID = 64 р>
Мы используем CruiseControl.NET с NAnt и MsBuild для нашего сервера сборки. Мы настроили его так, чтобы он имел сборки каждый раз, когда мы проверяем код, а также ночные сборки.
Cascade поддерживает сборку каждого отдельного изменения, внесенного в репозиторий.
Я использую FinalBuilder уже несколько лет. Преимущество FinalBuilder в том, что он делает гораздо больше, чем просто строит. У меня есть настройка для анализа результатов, создания архивов сборок, отправки журналов ошибок и т. Д. В последней версии есть веб-интерфейс, который позволяет экспертам не запускать сборки одним нажатием.