Предложения по программному обеспечению для облегчения настройки сервера сборки - PullRequest
3 голосов
/ 03 сентября 2010

В настоящее время я настраиваю новый сервер сборки, и меня интересуют любые предложения сообщества относительно программного обеспечения, такого как 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 более благоприятными, если я не смогу убежден иначе.

ОБНОВЛЕНИЕ (после исследования Хадсона): После всех рекомендаций для Хадсона я начал изучать, что относится к , чтобы запустить и запустить на моих двух серверах Windows 2008. Из того, что я могу собрать, веб-часть (master) будет работать на моем веб-сервере, но кажется, что IIS не поддерживается, поэтому это сильно усложнит ситуацию, поскольку я хочу разместить ее на той же машине, что и другие мои веб-приложения. На сервере сборки я бы установил вторую копию Hudson, которая действовала бы как подчиненная и выполняла только те сборки, которые делегированы ему ведущим. Чтобы это работало, я должен был установить Hudson в качестве службы Windows , а также установить некоторые утилиты совместимости с Unix . К сожалению, ссылка UnxUtils , кажется, не работает, когда я проверил, поэтому я не могу двигаться вперед, пока не получу разрешение. Все это действительно звучит так же сложно, если не сложнее, как установка CruseControl.NET. На данный момент это, к сожалению, оставляет меня в поиске CruiseControl.NET и TeamCity.

ОБНОВЛЕНИЕ (о TeamCity) : Изучив TeamCity немного ближе, я понял, что, по крайней мере, серверная часть также написана на Java и развернута в манере, очень похожей на Hudson. К счастью, кажется, что Tomcat можно использовать для размещения сервлетов внутри IIS, хотя я не могу найти хорошее прямое руководство, чтобы описать, как на самом деле это сделать. Так что пропустив это сейчас, я посмотрел дальше, когда наткнулся на то, что может выглядеть как крупная загвоздка .

Только для TeamCity Professional Edition поддерживает TeamCity Default Аутентификация и не поддерживает изменение схемы аутентификации.

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

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

Ответы [ 5 ]

3 голосов
/ 03 сентября 2010

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

1 голос
/ 03 сентября 2010

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

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

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

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

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

1 голос
/ 03 сентября 2010

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

0 голосов
/ 11 сентября 2010

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

0 голосов
/ 04 сентября 2010

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

...