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

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

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

Это вопрос в настоящее время обсуждается на мета.

Jeremy 07.04.2016 08:14
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
19
1
18 937
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Я успешно использую Buildbot для проекта Spring RTS Engine.

Ответ принят как подходящий

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

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

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

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

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

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

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

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

zergius 20.02.2014 19:06

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

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

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

Я дам вам +1 для Hudson, он намного красивее, чем CC, а также его намного проще настроить. Функциональность практически идентична.

gbjbaanb 04.05.2010 01:41

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

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

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

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

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