CruiseControl [.Net] против TeamCity для непрерывной интеграции? - PullRequest
116 голосов
/ 12 октября 2008

Я хотел бы спросить вас, какую автоматизированную среду сборки вы считаете лучшей, основываясь на практическом опыте. Я планирую заняться разработкой .Net и Java, поэтому мне хотелось бы иметь инструмент, поддерживающий обе эти платформы.

Я много читал и узнал о CruiseControl.NET , используемом при разработке stackoverflow, и TeamCity с его поддержкой агентов сборки на разных ОС-платформах и на основе разные языки программирования. Итак, если у вас есть практический опыт работы с обоими из них, какой из них вы предпочитаете и почему?

В настоящее время меня больше всего интересует простота использования и управления инструментом, а тем более, что CC является открытым исходным кодом, а TC требует лицензирования в какой-то момент, когда у вас есть много проектов для запуска ( потому что мне это нужно для небольшого количества проектов).

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

Ответы [ 11 ]

111 голосов
/ 13 октября 2008

Я работал с инструментами непрерывной интеграции и с тех пор, как появился круиз-контроль (Java-версия). Я попробовал почти все из них в какой-то момент. Я никогда не был счастливее, чем в TeamCity. Он очень прост в настройке и по-прежнему обеспечивает большую мощность. Страница статистики сборки, которая показывает время сборки, количество юнит-тестов, скорость прохождения и т. Д., Очень хороша. Домашняя страница проекта TeamCity также очень ценна. Для простых проектов .NET вы можете просто указать TeamCity, где находится решение, и в каких сборках есть тесты, и это все, что нужно (кроме местоположения управления исходным кодом). Мы также использовали несколько сложных скриптов MSBuild и создали цепочку сборки. Я также прошел два обновления TeamCity, и они прошли безболезненно.

CruiseControl.NET также хорошо работает. Это сложнее в настройке, но у него более длинная история, поэтому легко найти решения в Интернете. Поскольку CruiseControl.NET является открытым исходным кодом, у вас также есть возможность добавлять или изменять все, что вам нравится. Я использовал CruiseControl.NET с момента его выпуска и написал часть раннего кода для cc.tray (к счастью, он был переписан кем-то, кто знал лучше).

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

Edit: Мы только что обновились до TeamCity 5.0 несколько недель назад, и это было еще одно безболезненное обновление. Это позволило нам воспользоваться улучшенными возможностями покрытия кода и поддержкой GIT. Мы также теперь используем функции персональной сборки и предварительно протестированных коммитов, которые использовались в течение некоторого времени. Я просто подумал, что должен обновить ответ, чтобы указать, что TeamCity продолжает улучшаться и все еще прост в использовании.

33 голосов
/ 08 апреля 2009

Я был / я большой поклонник CC.NET. В настоящее время у нас есть 5 проектов в CruiseControl, и они прекрасно работают. Написание файлов конфигурации вручную может быть болезненным, но это нормально.

Но .

После экрана Kona: непрерывная интеграция и улучшенное модульное тестирование (первая 1/3 о TeamCity) Я тоже проверю TeamCity. Мне нравится встроенная приборная панель и интерфейс конфигурации.

Я думаю, все должны посмотреть это видео, прежде чем выбрать CC.NET или TeamCity.

p.s .: Я надеюсь, что в сети есть и ценное видео CC.NET.

15 голосов
/ 12 марта 2009

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

Я использую TeamCity в настоящее время в проекте, и я в целом доволен им, но многие из генерируемых им графиков не особенно полезны, и его сложнее настроить, чем Хадсон.

Тем не менее, TeamCity является мощным, бесплатным для многих целей и имеет одну особенность: удаленный запуск. Вы можете «предварительно зафиксировать» свою проверку прямо из IDEA или Eclipse, запустить одну или несколько конфигураций сборки на сервере TeamCity и зафиксировать изменения только в случае успешной сборки (например, компиляция и все тесты пройдены).

Учитывая, что вы можете запустить как TeamCity, так и Hudson за несколько часов, возможно, стоит захватить и запустить их параллельно, и любые другие (такие как CruiseControl), о которых вы только можете подумать. Если вы не можете быстро настроить CI-сервер для параллельного сравнения, то, по крайней мере, у вас есть точка данных для простой установки и / или настройки.

12 голосов
/ 16 октября 2008

Я использовал и CC.net, и TeamCity. Мне поручено настроить и установить TeamCity для моей организации (5 разработчиков). Наша организация использует некоторые необычные методы и инструменты (по крайней мере, для организаций нашего размера), такие как Perforce для управления исходным кодом и несколько агентов сборки, работающих в гетерогенных операционных системах, что вызвало некоторые начальные головные боли при установке. Тем не менее, поддержка по электронной почте была абсолютно первоклассной в настройке всего. Я получил ответы на мои глупые вопросы буквально за минуты.

Интерфейс интуитивно понятный и отзывчивый, а также многофункциональный. Продукт чувствует себя очень дорого. Конфигурация проста, а веб-интерфейс достаточно интеллектуален, чтобы обновляться без перезапуска служб агента или сервера или даже обновления страницы.

Мне кажется, что мы используем практически все расширенные возможности продукта и пока не нашли никаких ошибок. В зависимости от интеграции, вложенных сценариев NAnt, маркировки версий Perforce, вы называете это, мы делаем это.

Я настоятельно рекомендую TeamCity всем, кто ищет сервер непрерывной интеграции или любой сервер сборки.

12 голосов
/ 12 октября 2008

Я успешно использовал их в разных проектах. С точки зрения настройки и администрирования, с Team City гораздо проще иметь дело. Вам не нужно взламывать файлы .config, как вы делаете с CC, и установка очень проста. Поскольку у вас не так много проектов, я бы рекомендовал Team City вместо CC, пока вы не дойдете до точки, что Team City стоит $$.

3 голосов
/ 21 октября 2008

Убедитесь, что выбранная вами система масштабируется до количества проектов, которые вам понадобятся для ее обработки ...

Я использую CruiseControl.Net, но я бы не рекомендовал его для создания большого количества проектов ... У меня есть (возможно, немного странная) схема, в которой у меня много статических библиотек C ++, которые я собираю в приложения. Каждая библиотека зависит от других библиотек, и приложения получают набор библиотек и сборок. У каждой библиотеки есть набор тестов. Каждое приложение имеет набор тестов. Я строю для 5 компиляторов и вариаций (Windows) платформ.

Первое, что я обнаружил, было то, что триггеры проекта CC.Net не совсем то, что вам нужно, и мульти-триггер не очень хорошо работает с триггерами проекта. Способ работы триггеров проекта (они используют удаленное взаимодействие для подключения к серверу, на котором хранится проект (даже если это проект, управляемый тем же экземпляром CC.Net), а затем извлекают все проекты с этого сервера и выполняют последовательный поиск в списке. поиск проекта, который вас интересует ...) означает, что они плохо масштабируются. Как только вы превысите определенное количество проектов, вы обнаружите, что CC.Net берет большую часть ЦП для вашей машины сборки.

Конечно, это с открытым исходным кодом, так что вы можете это исправить ... И я уверен, что это хорошо для небольшого числа не взаимозависимых проектов.

Более подробную информацию о проблемах, которые у меня были, и некоторые исправления для CC.Net смотрите здесь http://www.lenholgate.com/archives/cat_ccnet.html

3 голосов
/ 12 октября 2008

Не желая бросать в вас альтернативные инструменты :-)

Hudson - отличная альтернатива с открытым исходным кодом, я использовал CC и CC.net, и, признаюсь, считаю, что это фантастические инструменты. Я размышляю о переходе на Hudson, так как он намного проще в настройке и обслуживании.

https://hudson.dev.java.net/

2 голосов
/ 13 октября 2008

У меня был опыт установки и запуска CruiseControl (версия Java) для Linux во время моей предыдущей компании. Как и большинство людей предполагают, это не самая простая вещь для настройки. Вы должны понимать его структуру, чтобы придумать работоспособный / управляемый конфиг. Однако, после того, как вы преодолели этот горб, я чувствую, что CruiseControl достаточно гибок, чтобы позволить вам делать разные вещи для разных сценариев.

Кроме документации CruiseControl, ее вики-страница также содержит некоторую полезную информацию.

У меня нет прямого опыта работы с TeamCity. Хотя его функция фиксации перед тестированием выглядит достаточно интересной.

Другой инструмент CC, который вы могли бы взглянуть на это, - Bamboo от Atlassian. Это намного проще в настройке, и интерфейс приятнее. Хотя он не такой гибкий, как предлагает CruiseControl.

2 голосов
/ 12 октября 2008

Я недавно установил cc .net. Это отличное приложение, но требует немного терпения. Вы будете редактировать конфигурационные файлы в блокноте много :)

Это уже давно, поэтому его хорошо поддерживают, и вы обычно можете найти кого-то, кто сделал то, что вы хотите сделать раньше. Веб-интерфейс также .net, что для нас было плюсом, так как мы являемся магазином Microsoft.

Я не использовал TeamCity, но слышал немало рекомендаций, и это выглядит красиво.

1 голос
/ 12 октября 2008

Третий вариант, который вы можете рассмотреть: Thoughtworks 'Cruise. Он построен на CruiseControl, но предлагает гораздо больше функций, упрощает настройку и т. Д. И т. Д. Не является бесплатным (или с открытым исходным кодом).

http://studios.thoughtworks.com/cruise-continuous-integration

...