Непрерывная интеграция для стека с Visual C ++ и C # - PullRequest
6 голосов
/ 21 ноября 2011

Пожалуйста, порекомендуйте хорошую непрерывную интеграцию, которая бы строила и интегрировала со стеком .net и Visual C ++.

Некоторые рекомендации, которые я получил,

  1. Дженкинс
  2. CruiseControl
  3. Teamcity

Из-за характера проекта, предложенного полиглотом, какое решение по непрерывной интеграции вы бы порекомендовали?

Ответы [ 5 ]

5 голосов
/ 21 ноября 2011

Я использовал все три за несколько лет.В некоторых ответах ниже указано, что большая часть работы будет заключаться в создании собственных сценариев сборки.Это было верно и в моем опыте.Мы используем комбинацию сценариев MSBuild и Powershell для нашего процесса сборки, который может быть запущен практически с любым инструментом CI, поэтому выбор одного из них сводится к тому, что вы ищете с точки зрения настройки, интеграции с другими системами, производительности ипростота использования.

Краткий ответ:

Я рекомендую Дженкинс.Пока что это лучшее сочетание вышеперечисленных качеств.Он имеет множество плагинов, некоторую локализацию и активно развивается сообществом OSS.

Длинный ответ:

  • Я начал с Cruise Control .Net.Это было легко настроить с помощью текстового файла, и я нашел его очень надежным.Однако мы отошли от него, потому что Thoughtworks двигался к платному продукту (Cruise, теперь Go), и будущее развитие было под вопросом.С тех пор новая команда разработала проект, но с тех пор мало что известно о будущем развитии.
  • Мы переехали в TeamCity, которая бесплатна и имеет отличный пользовательский интерфейс ajax-y.Его легко настроить и запустить, и он обладает множеством функций для распределенных сборок.Мы прекратили использовать TeamCity по нескольким причинам.Сервер делает кучу вещей, и это было немного излишним для наших основных потребностей.Несмотря на это, он не был очень настраиваемым (см. Часовые пояса и содержимое уведомлений), и мы часто находили интерфейс администратора запутанным.Это было все еще хорошо, но у нас также постоянно ухудшались проблемы с производительностью.Мы начали со стандартного стандартного HSSQLDB, перенесли нашу установку на сервер SQL, когда мы начали испытывать снижение производительности, а затем вообще прекратили использовать сервер, поскольку производительность продолжала снижаться со временем.Я не уверен, что виновник был, но я не мог найти никакой очистки, которая могла бы объяснить постоянно ухудшающуюся производительность, поскольку веб-сервер Tomcat боролся с SQL Server за ресурсы, даже когда не было активных активных сборок.Я уверен, что это моя вина, и мне не хватало какой-то критически важной настройки или мне нужно было больше памяти для сервера, но это общая утилита, у нас не было этих проблем с CC.Net, и больше всего я неПарень из Java / Tomcat, и у меня не так много дополнительного времени, чтобы продолжать бороться с этими проблемами.
  • Мы переехали в Дженкинс.Кажется, до сих пор все работало нормально, но мы были с ним совсем недавно.Его было легко настроить, он, похоже, не потребляет почти столько же ресурсов, сколько TeamCity, и имеет нелепое количество плагинов.Единственный недостаток на данный момент, как и у многих продуктов OSS, кажется, что у него не самая лучшая документация, и он делает так много, что я могу немного подправить ручки, чтобы настроить его так, как мы хотим.
2 голосов
/ 21 ноября 2011

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

1 голос
/ 21 ноября 2011

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

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

1 голос
/ 21 ноября 2011

Jenkins имеет большое преимущество: он очень расширяемый (в настоящее время более 400 плагинов), что позволяет комбинировать его с огромным количеством других инструментов.Так что это дает вам полную свободу в выборе других инструментов.Недавно я читал, что это одна из проблем TeamCity, что вы заблокированы, используя весь набор инструментов (например, использование SVN или Git в качестве системы контроля версий будет невозможно).

Я сам использую Jenkins длянаши проекты, в которых есть как Java, так и C ++ код, и я очень доволен этим инструментом.Раньше у нас был CruiseControl, и мы ни разу не пожалели о переключателе.

0 голосов
/ 21 ноября 2011

После реализации всех трех в разных магазинах, я выбрал все вышеперечисленное. Выберите один.

...