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

Цепочки непрерывной интеграции для .NET, Java и других языков относительно хорошо определены, но рынок С++, похоже, имеет много разнообразия.

По CI "toolchain" я имею в виду инструменты для скриптов сборки, автоматическое тестирование, проверку стандартов кодирования и т.д.

Что такое команды С++, используемые для инструментальных цепей CI?

Ответ 1

Другим вариантом может быть buildbot.

Он написан на python, но не только для приложений python. Он может выполнить любой script для выполнения вашей сборки. Если вы посмотрите на их истории успеха, там, как представляется, существует множество языков.

Ответ 2

Мы реализовали нашу инфраструктуру непрерывной интеграции кросс-платформенной платформы С++ с использованием Parabuild

http://www.viewtier.com/products/parabuild/screenshots.htm

Мы смогли интегрировать с ним все виды инструментов Win/Mac/Linux QA, и он очень прост в установке и обслуживании: это одна установка на каждую платформу, и веб-интерфейс очень удобен.

При оценке нескольких серверов непрерывной интеграции основная проблема заключалась в том, что они были предвзято Java: Parabuild, с другой стороны, хорошо вписывается в кросс-платформу С++ и рабочий процесс QA

Ответ 3

Visual Build Professional - мой любимый инструмент для сближения всех других инструментов. Конечно, Windows, но она интегрируется со всеми вкусами Visual Studio и множеством инструментов тестирования, средствами управления исходными кодами, треерами по проблеме и т.д. Однако это только окна. Я знаю, что не весь стек, но это начало.

Ответ 4

G'day,

Мы действительно столкнулись с этой проблемой на сайте, на котором я ранее сокращался.

Один парень сел и написал инструменты, главным образом сценарии оболочки, в

  • проверяйте текущую базу кода каждый час или около того и делайте сборку, чтобы проверить, не сломана ли она, и
  • проверьте последнюю хорошую сборку и выполните полную сборку и запустите около 8000 регрессионных тестов.

Мы просто не могли найти ничего коммерчески доступного для этого, и поэтому Чарли сел и написал это в сценариях оболочки bash, и он работал на HP-UX.

веселит, Rob

Ответ 5

Как и в любой другой задаче на С++, я просто хромаю вместе с непрерывной интеграцией. Моя настройка начинается с Eclipse. Я установил его для создания файлов make для моих проектов. У меня есть сценарии ant, которые выполняют общие задачи сборки, запустив "make all" или "make clean" на соответствующих make файлах. Эти скрипты ant являются частью моего проекта, и я должен обновлять их, когда добавляю новую конфигурацию сборки или новую часть в систему. Это не так уж плохо.

Я использую CruiseControl для фактического запуска сборки. Каждый проект (один из них) имеет собственный ant script, который выполняет задачи сборки (копирование артефактов, результаты обработки), вызов в проект ant script для создания здания.

Мне пришлось использовать cppunit для моего тестирования и обрабатывать результаты с файлом xslt, который я нашел где-то. У меня также есть неправильная метка svn revision на каждой сборке, потому что я не могу найти подходящую маркировку svn. Все, что я могу найти, это полузакрытый многолетний код, и люди утверждают, что другие люди делают это неправильно.

Мне кажется, что CC - это умирающая система, но я не нашел ничего лучшего для С++. Опять же, я также чувствую, что С++ - это умирающий язык, поэтому, возможно, это больше, чем просто это.

Ответ 6

Мы использовали scons для непрерывной интеграции, выполняемой центральным сервером сборки. Некоторые проекты мигрировали в buildbot.

Теперь я перехожу в rake и рассматривает решения, рассмотренные в этот блог. Фаулер упоминает, что ThoughtWorks иногда используют rake для своих скриптов сборки в своей статье Continuous Integration.