Какой инструмент непрерывной интеграции лучше всего подходит для проекта C++?[закрыто]

StackOverflow https://stackoverflow.com/questions/145586

  •  02-07-2019
  •  | 
  •  

Вопрос

Cruisecontrol и Hudson — две популярные системы непрерывной интеграции.Хотя обе системы способны хорошо выполнять автоматизированные непрерывные сборки, кажется, что намного проще создать сценарий пакетной сборки или сборки bash, а затем использовать планировщик Windows или cron для планирования сборок.

Существуют ли лучшие системы непрерывной интеграции для проектов C++?Или проще использовать скрипт и планировщик?

Это было полезно?

Решение

Мы использовали Круиз-контроль для CI в проекте C++.Хотя это единственное, для чего мы используем ant, сценарий сборки ant для CruiseControl просто запускает наш обычный сценарий сборки, поэтому он очень прост, и нам уже давно не нужно его обновлять.Поэтому тот факт, что CrusieControl основан на Java, не является для нас проблемой.

Основные преимущества использования чего-то вроде круиз-контроля:

  • Хорошая веб-страница, показывающая статус сборки.
  • Электронная почта после каждой сборки или после неудачной сборки.
  • Автоматическая сборка после фиксации в системе контроля версий.
  • Плагин Firefox для мониторинга статуса сборки
  • Показывает выходные данные для любых ошибок сборки.
  • Показывает, какие файлы изменились с момента последней сборки (полезно видеть, какой разработчик сломал сборку).

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

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

Другие советы

Мы используем Хадсон для CI и СонарКуб для метрик кода.Они интегрированы, и у Hudson есть несколько плагинов, с которыми не справится ни один cronjob.

Одним из замечательных плагинов является CI Game, который ведет учет того, кто ломает сборки, а кто фиксирует, не нарушая их.У Hudson есть плагины для работы с VMWare, Selenium, SVN, CSV, Git.Он имеет синдикацию RSS, которая может помочь вам еще больше автоматизировать все остальное.

Хадсон великолепен...

Мы использовали Дарт-панель.Это открытый исходный код, но он основан на КомплектПосуда.С тех пор они изменили название на CDash который, я полагаю, все еще так же эффективен.Мы проводим несколько видов тестирования, включая ночную и непрерывную интеграцию на 10 различных платформах как в режиме отладки, так и в режиме выпуска, а также запускаем тысячи тестов приложений и сообщаем о результатах там же.

я использовал Строительныйбот для Весенний движок РТС проект успешно.

Вы также можете попробовать TeamCity от JetBrains.Это коммерческий продукт, но он дает бесплатную лицензию на использование до 20 конфигураций сборки.

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

Если это не то, что вам нужно, вам, вероятно, лучше использовать планировщик задач Windows или задания cron.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top