2008-08-25 4 views
30

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

К CI «Набор инструментов» Я специально имеем в виду инструменты для сборки скриптов, автоматизированного тестирования, стандартов кодирования, проверка и т.д.

Что C++ с использованием команд для CI компилированных инструментов?

+3

«(И почему наши компилированные инструменты сосут так плохо по сравнению с Java/.NET-программистами?!? ». Это совершенно другой вопрос сам по себе .... – quark 2009-11-12 23:42:54

+0

Голосование, чтобы закрыть как вне темы. – 2015-06-03 13:02:11

ответ

2

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

1

G'day,

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

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

  1. ЗАКАНЧИВАТЬ текущую кодовую базу каждый час или так и сделать сборку, чтобы проверить, если он был сломан, и
  2. выписка последние хорошие сборки и сделать полную сборку и запустить около 8000 регрессионных тестов.

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

веселит, Роб

0

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

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

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

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

+1

C++ не умирает, но большая часть его сильных сторон только сияет в нише – Tom 2009-10-28 01:01:30

7

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

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

0

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

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

7

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

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

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

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

Смежные вопросы