Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

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

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

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

Ответ 4

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

Ответ 5

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

Ответ 6

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

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

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

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