Сравнение серверов CI? [закрытый]


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

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

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

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

  • конфигурация (легкая, гибкая)
  • интеграция с SCM (esp. DSVC как git или hg)
  • интеграция с системами сборки (MSBuild, NAnt, Грабли)
  • интеграция с фреймворками тестирования
  • интеграция с Anaylsis источник (Мартышка, вопросом, что происходит, FxCop, NCover и т. д.)
  • WebInterface / Dashboards
  • требования к инфраструктуре
13 85

13 ответов:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

с уважением,

Себастиан

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

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

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

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

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

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

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

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

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