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