В настоящее время я настраиваю новый сервер сборки, и меня интересуют любые предложения, которые могут возникнуть у сообщества о таких программах, как 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.
Спасибо за информацию и одобрение, но я все еще немного не уверен, разрешит ли Хадсон разделение веб-части продукта на отдельный компьютер с сервера сборки. Также я должен подчеркнуть, что я действительно предпочитаю использовать IIS в качестве своего веб-сервера, хотя я, возможно, планирую использовать Apache, чтобы заставить SVN использовать NTLM, а также использовать некоторые из привлекательных программ для просмотра репозитория. – jpierson
Двигатель Hudson будет работать на том же сервере, что и сервер приложений (я не думаю, что достаточно чистого веб-сервера). Хадсон также поставляется с встроенным winstone, так что вам не нужен сервер приложений. Вы всегда можете управлять Hudson с помощью отдельного веб-сервера. Фактический процесс сборки может выполняться на другой машине. Обычно для этого используются рабы Хадсона. Вы можете подключить более одного подчиненного устройства, и Хадсон может распределять задания в соответствии с нагрузкой на разные машины сборки. Я еще не нуждался в балансировке нагрузки. Ведомые устройства могут работать на разных ОС, поэтому вы можете протестировать свое приложение с помощью разных кофигов. –
Интересно, что я могу ошибаться, но устанавливаю несколько экземпляров Hudson, которые из того, что я понимаю, потребуют включения IIS или какого-либо другого веб-сервера на моем сервере сборки, чтобы заставить этот подчиненный процесс работать, мне кажется, что он начинает вводить уровень сложности, которая восходит к предполагаемой простоте, которая должна появиться вместе с Хадсоном и угрожает загрязнить сервер сборки, который я пытаюсь избежать. У меня такое чувство, что мне придется очень хорошо копать в CC.NET, Hudson и другую документацию по продуктам, чтобы действительно понять, что будет соответствовать моим потребностям. – jpierson