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

87

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

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

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

Интересные места:

  • Конфигурация (простая, гибкая)
  • Интеграция с SCM (особенно DSVC, например git или hg)
  • Интеграция с системами сборки (MSBuild, NAnt, Rake)
  • Интеграция со средами тестирования
  • Интеграция с Source Anaylsis (Simian, NDepend, FxCop, NCover и др.)
  • WebInterface / Панели мониторинга
  • Требования к инфраструктуре
Питер Мортенсен
источник
31
27 человек считают это полезным - пока что закрыто. SIGH
Ryan
CruiseControl.NET переехал после того, как сотрудничество с Thoughtworks закончилось. Новый URL: cruisecontrolnet.org
Jowen
2
@Ryan: В мире много интересных вещей, которые не подходят SO.
Энди Визендангер,
Почему не Azure DevOps ?
zwcloud

Ответы:

51

Такой вопрос не будет полным без ссылки на большую матрицу функций CI (веб-архив), в которой перечислены практически все варианты CI.

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

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

Джеффри Фредрик
источник
5
Господи. Эта матрица страдает от "DeathByOverload". Базовый UX диктует, что большие сетки бесполезны без фильтрации. Чтобы добавить оскорбления к травме, здесь нет загрузки (csv), и уценка не может быть загружена напрямую. Даже это сопротивлялось копированию в Excel ... Я сдался.
sehe
4
Ссылка на Матрицу функций мертва :(
Марти
11
Архивная страница: web.archive.org/web/20130730154141/http://…
Даррен Гриффит
1
Архивированная страница недоступна из-за файла robots.txt
Sebazzz
14

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

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

Pascal Thivent
источник
1
Я согласен с тем, что SO уже довольно полно сравнений серверов CI. Я не знаю о Teamcity и CIFactory, но что касается CC (.net) и Hudson, то в настоящее время выбор довольно ясен; вот мой взгляд на это: stackoverflow.com/questions/604385/… . (Не обращайте внимания на акцент на Java в этом вопросе; Хадсон также отлично подходит для .NET: stackoverflow.com/questions/616149/… )
Джоник
@Jonik Спасибо, очень хорошие ссылки. Не знаю, как я их пропустил, они оба дают отличные ответы и очень полезную информацию.
Паскаль Тивент,
"не знаю о Teamcity и CIFactory" ... именно поэтому я хочу тщательное сравнение, которое НЕ имеет дело только с x и y. Вот почему это вики сообщества, не стесняйтесь извлекать заключение из ссылок, на которые есть ссылки.
Йоханнес Рудольф
@Johannes, достаточно честно; Я согласен с тем, что большинство существующих вопросов имеют более ограниченный охват, чем этот. Но здесь может быть не так много пользователей, имеющих опыт работы со всеми Hudson, CC, Teamcity и CIFactory, которые могли бы обеспечить хорошее сравнение. Если вам нужен CI-сервер, мой совет (из личного опыта и, например, голосов на stackoverflow.com/questions/140453/… ) - сначала попробовать Hudson.
Jonik
7

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

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

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

Дэниел Эллиотт
источник
Ах, разве CC.Net не является .net-портом CruiseControl?
Mnementh
5

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

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

Он почти делает все, что мне нужно.

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

scottmarlowe
источник
2

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

Мэтт
источник
Я думал, что никто не упомянет TFS Build System, полностью интегрированную с TFS и поддерживаемую Microsoft. Большинство разработчиков .Net, возможно, уже установили TFS.
Диего Мендес
Командные сборки в TFS 2015/2017 намного проще настраивать и использовать, и вы даже можете отслеживать их в реальном времени с помощью монитора сборки CatLight
Томас Беннет
Вероятно, есть причина, по которой он не упоминается ... Мои 2 цента: только начали работать над проектом, который его использует, мы пытаемся улучшить нашу автоматизацию и наладить конвейер доставки ... но время от времени CI "заканчивается минут "и угадайте, что ... вам нужно заплатить за несколько минут. Вот почему я нахожусь в этой ветке ...
Юлия,
1

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

Mnementh
источник
1

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

РЕДАКТИРОВАТЬ: большинство задач TeamCity будет выполнять из коробки; при необходимости мы используем NAnt.

TrueWill
источник
1

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

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

Pete OHanlon
источник
0

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

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

С Уважением,

Себастьян

Себастьян М
источник
0

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

Мне нравится переходить в Team City.

Мэтью Мартин
источник
0

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

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

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

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

Бретт Ригби
источник
0

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

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

Питер Мортенсен
источник
0

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

Алон Амсалем
источник