Сравнение CI-серверов?

Я ищу сравнение разных непрерывная интеграция (CI) Серверы (особенно фокусировка на .NET) и не удалось найти.

Поэтому я хотел бы знать, что вы думаете о доступны различные решения, каковы плюсы и минусы, какие требования к хостингу и почему CI Server XY является Сервер по вашему выбору.

Меня интересуют ваши мысли (не стесняйтесь комментировать другие):

Достопримечательности:

  • Конфигурация (простая, гибкая)
  • Интеграция с SCM (особенно DSVC, например git или hg)
  • Интеграция с системами сборки (MSBuild, NAnt, Rake)
  • Интеграция с платформами тестирования
  • Интеграция с источником Anaylsis (Simian, NDepend, FxCop, NCover и т.д.).
  • WebInterface/Сводки
  • Требования к инфраструктуре

Ответ 1

Никаких вопросов, подобных этому, не будет завершена без ссылки на большую CI Feature Matrix (Web Archive), в которой перечислены все параметры CI.

Но я думаю, что важно заглянуть в рамки того, что вы хотите включить в свою систему CI. Это будет просто сборка или вы собираетесь использовать другие элементы, такие как статический анализ, кросс-проектные зависимости, развертывания, функциональные тесты и т.д. Чтобы помочь в этом планировании, я создал эту настенную диаграмму на Элементы Enterprise CI (PDF; регистрация не требуется). Пожалуйста, не позволяйте "E-word" отпустить вас; Я просто имею в виду вещи, выходящие за рамки базовой быстрой сборки CI обратной связи.:)

Это не инструмент, но перечисляет множество методов, которые вы могли бы рассмотреть, находясь на этапах планирования/оценки.

Ответ 2

Ничего не полезно в:

РЕДАКТИРОВАТЬ: A, отмеченный Джоником в комментарии, я пропустил В чем разница между проектами Hudson и CruiseControl для Java? и Как и почему я устанавливаю машину сборки С#?. Вы найдете очень проницательные ответы. Другими словами, я думаю, что все, что вы ищете, уже включено в Stack Overflow.

Ответ 3

TeamCity имеет замечательную особенность, позволяющую разработчику выполнить личную сборку перед фиксацией. Очень полезно!

CruiseControl.NET - дедушка из группы и, следовательно, немного датирован визуально и т.д. Как это было давно, Google знает, как исправить множество проблем, с которыми вам придется столкнуться.

По этим причинам (среди прочих) я использую CruiseControl.NET на работе и TeamCity дома и в моей жизни с открытым исходным кодом:)

Ответ 4

Я весь пользователь CruiseControl.NET. Мои команды используют его на работе, и я использую его дома для личных проектов.

В частности, CruiseControl.NET позволяет мне запускать весь процесс CI: сборка, обновление версии, тестирование модулей и интеграции, архивирование источника или кандидата на выпуск, покрытие кода и даже развертывание нашей тестовой системы на работе. Он очень настраиваемый, хорошо работает с MSBuild и NAnt и даже имеет расширяемую архитектуру подключаемого модуля.

Это в значительной степени делает все, что мне нужно.

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

Ответ 5

Team Foundation Build - это вариант, который хорошо взаимодействует с Team Foundation Server. Это бесплатно, если вы уже давно лицензировали TFS.

Ответ 6

CruiseControl.NET - это может быть немного больно, чтобы настроить (как и большинство систем CI), но с этим стоит заглядывать. В настоящее время я настроен на запуск модульных тестов по завершению сборки, а также для установки установщиков Wix по требованию. Как сказал Дэн, это выглядит немного устаревшим, но это не имеет значения, поскольку оно предоставляет вам множество информации, которую легко получить и легко прочитать.

Одна вещь - убедитесь, что у всех ваших разработчиков установлен CC Tray, работает и указывается на их сборки. Это отличное чувство, чтобы получить "Еще одну успешную сборку" в вашем лотке уведомлений.

Ответ 7

Мы используем Хадсона на работе. Основная причина в том, что его очень легко настроить. Вы можете напрямую выполнить войну (это исполняемый банку) или развернуть ее в любом контейнере сервлетов. И вы готовы начать. Также Хадсон поддерживает множество инструментов и расширяется через плагиновую систему.

Ответ 8

Мы переключились с CruiseControl.NET на TeamCity в первую очередь из-за простоты настройки. TeamCity также имеет больше возможностей, но основная причина заключалась в том, что хороший веб-интерфейс проще в использовании, чем файлы конфигурации XML.

EDIT: большинство задач TeamCity будут делать из коробки; при необходимости мы используем NAnt.

Ответ 9

Я новичок в CI-сцене, и я сосредоточил свои усилия на CruiseControl.NET, используя NAnt и Ivy для создания моих проектов .NET.

Я обнаружил, что CruiseControl.NET очень адаптируется к множеству других инструментов, таких как NCover/NUnit/etc. Все они подключаются к этому и интегрируют результаты для комбинированного процесса сборки.

В ближайшем будущем я буду изучать TeamCity для своих собственных интересов, но я думаю, что CruiseControl отлично справляется, но только так хорошо, как ваши скрипты сборки! Если это брюки, тогда ваши сборки могут только быть хорошими.

Но, в общем, CruiseControl.NET - хорошее решение, но мне еще предстоит выяснить, насколько хороша конкуренция в сравнении.

Ответ 10

Мы используем ccnet на работе, что отлично подходит для большинства наших потребностей (у нас есть около 50 автоматических сборок), но для его полной настройки и фиксации нужен один человек.

Если вы начинаете с нуля, пожалуйста, взгляните на Bamboo. Мы рассмотрели это, и это выглядит действительно многообещающим, но это не полностью соответствует нашим потребностям, и мы вложили слишком много времени в ccnet, чтобы переключиться на Bamboo сейчас.

Привет,

Sebastiaan

Ответ 11

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

Мне нравится мигрировать в Team City.

Ответ 12

Мы довольны Hudson. Мне нечего сравнивать, но было легко настроить и запустить. Сейчас он только строит проекты Win32 С++ и установщик, но мы портируем Linux, и он также должен работать с этим.

Получает Subversion репозитории без каких-либо проблем и оповещений по электронной почте и т.д. Нам это нравится. Опять же, у нас ограниченный опыт сравнений.

Ответ 13

Я работаю с CruiseControl.NET, TFS 2012 и TeamCity 7.x в течение нескольких лет, и я считаю, что TeamCity является ЛУЧШИМ из-за простоты использования, удобного и информативного интерфейса и других интересных функций, таких как зависимости сборки и многие Больше. Это просто работает, мне это нравится.