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