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

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

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

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

25.08.2008 11:56:18
«(И почему наши наборы инструментов плохо сосут по сравнению с программистами на Java / .NET ??!?». Это уже совсем другой вопрос сам по себе…
quark 12.11.2009 23:42:54
Голосование закрыто как не по теме.
Ciro Santilli 冠状病毒审查六四事件法轮功 3.06.2015 13:02:11
6 ОТВЕТОВ

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

2
25.08.2008 12:26:19

G'day,

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

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

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

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

ура, Роб

1
26.08.2008 13:04:30

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

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

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

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

0
11.06.2009 12:19:58
C ++ не умирает, но большинство его преимуществ проявляются только на нишевых рынках.
Tom 28.10.2009 01:01:30
Также ... Я рекомендую посмотреть CxxTest, если у вас есть время убить. Некоторое время проект был практически мертвым, но я думаю, что его взяли новые сопровождающие. По умолчанию он производит выходные данные, совместимые с GCC «file: line: message» или ICC / MSVC «file (line): message». Было бы очень легко создать совместимый с jUnit XML-вывод для него.
Tom 28.10.2009 01:03:21

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

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

7
11.06.2009 15:18:45

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

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

0
12.11.2009 23:12:17

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

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

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

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

7
4.01.2011 10:26:20
какую систему сборки вы используете в Linux? Мы не можем найти ничего, что могло бы сделать автономную сборку и, надеюсь, будет легко поддерживать и интегрировать с eclipse
davka 30.12.2010 13:17:10
Мы используем cmake в качестве основной системы сборки: вы можете найти больше информации на cmake.org . Он кроссплатформенный и может также генерировать проекты затмения, как описано в vtk.org/Wiki/CMake:Eclipse_UNIX_Tutorial#CMake_with_Eclipse
stefano perticoni 30.12.2010 13:36:12
Обновление: в настоящее время мы используем Jenkins jenkins-ci.org (был Хадсон). Одна интересная способность Jenkins для распределенной сборки - это возможность удаленной установки на подчиненные узлы сборки. Это очень удобно для масштабирования вашей инфраструктуры, поскольку вам просто нужно установить и поддерживать один и только один экземпляр Jenkins на главном узле сборки.
stefano perticoni 2.02.2012 08:12:35