2010-09-03 2 views
3

В настоящее время я настраиваю новый сервер сборки, и меня интересуют любые предложения, которые могут возникнуть у сообщества о таких программах, как Hudson или CruiseControl.NET, которые могут упростить и добавить дополнительные значение для процесса сборки.Предложения по программному обеспечению для облегчения настройки сервера сборки

Раньше у меня был сервер сборки, созданный с использованием пользовательских пакетных файлов, которые запускали бы msbuild и другие подобные инструменты, и они были вызваны перехватами subversion, чтобы обеспечить непрерывную сборку для каждой ветви. Идея заключалась в том, что в конечном итоге мы также выполнили бы автоматизированные тесты и/или статический анализ, хотя мы так и не дошли. Этот сервер также действовал как наш репозиторий исходного кода, тестовый компьютер для создания веб-проектов и веб-сервер для пользовательской панели мониторинга и портала для разработчиков в команде.

В этот момент я хочу отделить некоторые из обязанностей старого сервера сборки и, по крайней мере, сервера сборки, который отвечает только за создание сборок, веб-сервера, который отвечает за работу в качестве сайта панели инструментов в интрасети для разработчиками и, возможно, дополнительным веб-сервером в качестве репозитория Subversion. Если будет лучше или проще сохранить код Subversion на том же сервере, что и SvnServe, тогда я, вероятно, захочу разместить репозиторий Subversion на веб-сервере, но все равно сохранить сервер сборки отдельно. Не имея личного опыта с любым из популярных серверов сборки и решений CI, мне любопытно, как CruiseControl.NET, Hudson или другие решения вписываются в этот тип конфигурации. Похоже, что и у CC.NET, и у Hudson есть веб-интерфейсы, например, но в документации нет четкой схемы того, как это происходит с различными конфигурациями оборудования/системы, поэтому я не уверен, что для этого требуется, чтобы веб-часть была на сборке сам сервер или нет.

Что касается технологий, с которыми я имею дело с кодом на основе .NET/C#, который представляет собой сочетание Web/WinForms/WPF, и мы используем несколько отдельных репозиториев Subversion для размещения этих проектов. Кроме того, было бы неплохо поддерживать Visual FoxPro и Visual Source Safe для некоторых устаревших приложений. Я также хотел бы привлечь больше членов команды, участвующих в мониторинге сборок, и хотел бы, чтобы разработчики могли создавать установки сборки для своих собственных проектов с максимально возможной простотой. Также я должен упомянуть, что у меня нет опыта настройки веб-приложения на базе Java в IIS, но у меня довольно много опыта в настройке и управлении приложениями ASP.NET, поэтому, если это может сделать продукты на основе .NET более благоприятными, если только я не могу убежденный иначе.

UPDATE (после исследования Hudson): После того как все рекомендации Хадсона я начал искать в том, что участие в get it up and running на моих двух серверах Windows 2008. Из того, что я могу собрать, веб-часть (master) будет работать на моем веб-сервере, но кажется, что IIS не поддерживается, поэтому это значительно усложнит ситуацию, поскольку я хочу разместить ее на той же машине, что и другие другие веб-приложения. На сервере сборки я бы установил вторую копию Хадсона, которая будет действовать как подчиненный и выполнять только сборки, которые делегированы ей мастером. Чтобы это получилось, я бы installing Hudson as a Windows Service и также должен был установить unix compatibility utilities. К сожалению, UnxUtils download link, кажется, сломан, когда я проверил, так что я не могу двигаться вперед, пока не получу это решение. Все это действительно звучит так же сложно, если не сложнее, чем установка CruseControl.NET. На данный момент это, к сожалению, оставляет меня в поисках CruiseControl.NET и TeamCity.

UPDATE (about TeamCity): После того, как я посмотрел в TeamCity, я понял, что по крайней мере часть сервера также написана на Java и развернута так же, как и Hudson. К счастью, похоже, что Tomcat может использоваться для размещения сервлетов внутри IIS, хотя я не могу найти подходящего прямого руководства, чтобы описать, как это сделать на самом деле. Так что пропуская это, я теперь смотрел дальше, когда я столкнулся с тем, что выглядит как major snag.

TeamCity Professional издание только поддерживает Teamcity По умолчанию аутентификации и не поддерживает изменения схемы аутентификации.

Поскольку проверка подлинности Windows, скорее всего, направление мы хотим идти, он теперь ищет, как он может вернуться к оценке CruiseControl.NET или, возможно, Хадсон, если я могу получить мои руки на UnxUtils, а также узнать больше о как я могу разместить часть панели инструментов Hudson в моей существующей конфигурации IIS. Любые указатели?

UPDATE (о Jenkins): Я в конечном итоге достаточно экспериментировать с Хадсоном, что я в конечном итоге с разумной установкой сборки сервера, что я доволен, и что может быть расширено, чтобы сделать гораздо больше, если мне нужно. Конечно, я пошел по пути конвертации в Jenkins, когда Oracle захватил Хадсона, а Дженкинс - это то, что я использую сегодня с небольшими кусочками powershell, чтобы помочь связать вещи вместе. Я очень доволен этим подходом прямо сейчас, и, помимо того, что Java основан, Jenkins имеет немного поддержки для других сред разработки, таких как .NET и MSBuild.

ответ

1

Я настоятельно рекомендую использовать Hudson. Это позволит не только создавать приложения .NET на постоянной основе, но и выполнять анализ кода и модульные тесты. Его легко установить (просто развернуть WAR-файл на веб-сервер, такой как Tomcat) и имеет множество опций конфигурации. Существует также большое количество доступных плагинов, которые вы можете использовать, многие из которых написаны другими пользователями Hudson. Лучше всего, это бесплатно и активно поддерживается.

+0

Спасибо за информацию и одобрение, но я все еще немного не уверен, разрешит ли Хадсон разделение веб-части продукта на отдельный компьютер с сервера сборки. Также я должен подчеркнуть, что я действительно предпочитаю использовать IIS в качестве своего веб-сервера, хотя я, возможно, планирую использовать Apache, чтобы заставить SVN использовать NTLM, а также использовать некоторые из привлекательных программ для просмотра репозитория. – jpierson

+1

Двигатель Hudson будет работать на том же сервере, что и сервер приложений (я не думаю, что достаточно чистого веб-сервера). Хадсон также поставляется с встроенным winstone, так что вам не нужен сервер приложений. Вы всегда можете управлять Hudson с помощью отдельного веб-сервера. Фактический процесс сборки может выполняться на другой машине. Обычно для этого используются рабы Хадсона. Вы можете подключить более одного подчиненного устройства, и Хадсон может распределять задания в соответствии с нагрузкой на разные машины сборки. Я еще не нуждался в балансировке нагрузки. Ведомые устройства могут работать на разных ОС, поэтому вы можете протестировать свое приложение с помощью разных кофигов. –

+0

Интересно, что я могу ошибаться, но устанавливаю несколько экземпляров Hudson, которые из того, что я понимаю, потребуют включения IIS или какого-либо другого веб-сервера на моем сервере сборки, чтобы заставить этот подчиненный процесс работать, мне кажется, что он начинает вводить уровень сложности, которая восходит к предполагаемой простоте, которая должна появиться вместе с Хадсоном и угрожает загрязнить сервер сборки, который я пытаюсь избежать. У меня такое чувство, что мне придется очень хорошо копать в CC.NET, Hudson и другую документацию по продуктам, чтобы действительно понять, что будет соответствовать моим потребностям. – jpierson

1

Для нашего процесса принятия решений мы начали с последующего обзора.

http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix

Наша главная цель была Java, легко настроить/использовать даже после того, как никто не создал работу в течение 6 месяцев. Мы отошли от старой версии Cruise Control, так как никто не знал, как ее использовать. Некоторые из коммерческих продуктов хороши, если вы хотите выйти за рамки простой интеграции. Посмотрите и решите сами.

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

Интересной альтернативой может стать студия Jira от Atlasian. Если вы используете гостевую версию, у вас мало проблем с поддержкой, и она поставляется с подрывными играми, бамбуком и лакомствами (jira + greenhopper, confluence, crucible, fisheye). http://www.atlassian.com/hosted/studio/

3

Я проголосовал за TeamCity здесь. Его очень, очень легко встать и работать, без проблем справляется со всеми вашими .NET. Сами сборки выполняются агентами, которые могут находиться на сервере сборки или на другом компьютере в зависимости от требований - они могут даже находиться на машине, работающей совершенно другой ОС в другой сети в другой стране.

+0

Концепция агентов сборки в TeamCity кажется очень похожей на сервер сборки CC.NET, тогда как сервер сборки, поскольку они ссылаются на него в TeamCity, больше похож на веб-панель мониторинга в CruiseControl.NET. В Хадсоне, к сожалению, все, кажется, все завершено, чтобы работать на одной машине по умолчанию. До сих пор я вижу большую разницу в возможностях с этой точки зрения, но кажется, что от людей комментирует, что конфигурация XML в CC.NET должна быть довольно сложной, потому что многие выбирают Hudson или TeamCity, главным образом, для удобства настройки графических интерфейсов сборщиков , – jpierson

0

Я согласен с Wyatt Barnett. TeamCity - лучший выбор. Его очень легко настроить и использовать. Кроме того, TeamCity имеет бесплатную профессиональную версию. Раньше мы использовали CruiseControl.NET в нашем проекте. Это также мощный инструмент, но это очень сложно и трудно понять.

+0

До сих пор CruiseControl.NET на самом деле кажется самым упрощенным, потому что он очень близок к тому, что я ищу, поскольку он требует установки автономного приложения для создания сборки на сервере сборки, и панель инструментов может быть размещена на отдельный веб-сервер. До сих пор кажется, что Хадсон объединяет обе вместе в одном пакете для работы на одной машине, а с TeamCity немного непонятно, является ли «Build Server» личным экраном или веб-интерфейсом, или же это еще одна часть. Я склонен склоняться к Хадсону или TeamCity из-за рекомендаций, но ... – jpierson

+0

В случае TeamCity «Build Server» может быть распределен по сети. TeamCity - это фактически веб-интерфейс + служба, которая контролирует репозиторий кода, управляет агентами сборки и т. Д. Вы можете использовать TeamCity без каких-либо локально установленных агентов сборки. –

0

Что сказал s.ermakovich: Как TeamCity, так и Hudson отделяют веб-интерфейс от агентов сборки. Вам не нужно устанавливать IIS в агенте сборки. Вам нужно будет установить JVM и программное обеспечение агента на любом узле сборки - очень просто.