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





Я успешно использую Buildbot для проекта Spring RTS Engine.
Мы использовали Круиз-контроль для CI в проекте C++. Хотя это единственное, для чего мы используем ant, сценарий сборки ant для CruiseControl просто запускает наш обычный сценарий сборки, поэтому он очень прост, и нам действительно не нужно было его обновлять в течение длительного времени. Поэтому тот факт, что CrusieControl основан на Java, на самом деле не был для нас проблемой.
Основные преимущества использования круиз-контроля:
Конечно, вы можете сами написать сценарий, который сделает все это, но почему все это работает? В конечном итоге дополнительные начальные затраты на настройку CruiseControl (или чего-то подобного), вероятно, будут намного меньше затрат на поддержку и обновление пользовательского сценария сборки CI.
Если все, что вам нужно, это запустить ежедневную сборку и простого скрипта, запускаемого cron, достаточно для ваших нужд, тогда обязательно сделайте это. Однако одним из преимуществ CI является то, что вы получаете отчет о состоянии сборки после каждой проверки. Написание сценария для этого требует больше работы, и CruiseControl уже делает это.
Мы использовали Панель управления Dart. Это открытый исходный код, но управляемый KitWare. С тех пор они изменили имя на CDash, которое, как я полагаю, все еще остается таким же способным. Мы проводим несколько видов тестирования, включая ночную и непрерывную интеграцию на 10 различных платформах как в режиме отладки, так и в режиме выпуска, а также запускаем тысячи тестов приложений и сообщаем о результатах.
Вы также можете попробовать Команда JetBrains. Это коммерческий продукт, но он дает бесплатную лицензию до 20 конфигураций сборки.
TeamCity в настоящее время привязан к количеству конфигураций сборки, а не к учетным записям разработчиков.
Мы используем Hudson для CI и SonarQube для метрик кода. Они интегрированы, и у Hudson есть несколько плагинов, которые не могут превзойти никакие cronjob.
Один из замечательных плагинов - CI Game, который отслеживает, кто нарушает сборки, а кто фиксирует, не нарушая их. У Hudson есть плагины для работы с VMWare, Selenium, SVN, CSV, Git. Он имеет RSS-синдикацию, которая может помочь вам еще больше автоматизировать все остальное.
Хадсон великолепен ...
Я дам вам +1 для Hudson, он намного красивее, чем CC, а также его намного проще настроить. Функциональность практически идентична.
Одной из приятных особенностей инструмента непрерывной интеграции (CI) является то, что сборка запускается каждый раз, когда что-то регистрируется в вашем репозитории системы управления версиями.
Если это не то, что вам нужно, вам, вероятно, лучше использовать планировщик задач Windows или задания cron.
Кроме того, инструменты CI также имеют (веб) информационную панель и расширенные возможности ведения журнала.
Мне кажется, ваш вопрос больше «зачем мне использовать инструмент CI», а не «какой инструмент CI мне следует использовать». Если вам нужен пакетный сценарий, воспользуйтесь им. (Повторное) создание среды сборки становится проще, только если вам не нужен инструмент CI в качестве дополнительного компонента. Если вам нужна сборка, запускаемая системой управления версиями, панель мониторинга, хранилище старых результатов сборки или другое ведение журнала, используйте инструмент CI и избегайте разработки всех таких функций в пакетных сценариях или сценариях оболочки.
Это вопрос в настоящее время обсуждается на мета.