CruiseControl [.Net] против TeamCity для непрерывной интеграции?

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

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

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

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

Ответ 1

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

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

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

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

Ответ 2

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

Но.

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

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

p.s: Надеюсь, в сети также есть ценное видео CC.NET.

Ответ 3

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

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

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

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

Ответ 4

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

Ответ 5

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

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

Я чувствую, что мы используем почти каждую расширенную функцию продукта и до сих пор не обнаружили ошибок. Интеграция Ndepend, вложенные скрипты NAnt, маркировка версии Perforce, вы называете ее, мы это делаем.

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

Ответ 6

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

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

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

Ответ 7

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

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

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

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

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

Ответ 8

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

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

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

Ответ 9

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

Кроме того, документация CruiseControl, ее wiki page также содержит полезную информацию.

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

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

Ответ 10

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

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

Ответ 11

Я использую Teamcity в течение последних полутора лет и имею большой опыт. Я включил ряд проектов .Net и Java и использовал такие инструменты, как MSBuild, Maven и т.д. Я нашел Teamcity довольно простой в настройке и работе. Мне удалось запустить CI для некоторых проектов sql, что было немного кошмаром, что могло быть хуже с другими инструментами CI.
Недавно обновился до Teamcity 8.0.6, который был безболезненным. Также Teamcity предоставляет REST API, который очень полезен для некоторых сценариев. Если вы используете powershell для автоматизации сборки, то скрипты интеграции Psake/Teamcity доступны на GitHub