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


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

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

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

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

11 115

11 ответов:

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

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

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

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

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

но.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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