Построить решение для C ++ - PullRequest
5 голосов
/ 17 ноября 2008

Я бы хотел настроить сервер сборки для неуправляемого кода C ++, разработанного в Visual Studio 2005. Сервер сборки должен выполнять следующие действия:

  • Мониторинг хранилища Subversion на наличие изменений кода и планирование сборки
  • Извлечь код из Subversion и запустить юнит-тесты
  • Предоставить своего рода отчет об успешной сборке и изменениях по сравнению с предыдущей сборкой

Изначально я смотрел на использование CruiseControl с Ant. Есть ли лучшее решение? Возможно, CruiseControl.Net и NAnt?

Ответы [ 8 ]

2 голосов
/ 29 ноября 2012

Поскольку никто не упомянул, Дженкинс является хорошим CI и становится все более и более распространенным (быть свободным тоже не повредит):

http://jenkins -ci.org /

Прост в установке, использовании и мониторинге, а также прекрасно интегрируется со многими вещами (SVN, GIT и т. Д.). Также очень настраиваемый. Требуется 5 минут, чтобы запустить его.

2 голосов
/ 17 ноября 2008

NAnt требуется довольно много работы для эффективной сборки C ++. Это действительно система сборки .NET насквозь. Мы создаем наш заголовок для четырех платформ C ++ плюс набор инструментов .NET, и потребовалось некоторое время, чтобы отогнать NAnt к нашим потребностям. Например, анализ зависимостей NAnt в C ++ настолько нарушен, что нам пришлось написать свой собственный. И у него есть много проблем, которые мы должны были исправить, чтобы исправить это.

Так что не прыгайте обеими ногами на этом. Проведите предварительное тестирование, чтобы убедиться, что оно действительно может делать то, что вы хотите, и почувствовать, насколько вам придется модифицировать его для C ++.

Кроме того, мы используем CruiseControl.NET также для некоторых NUnit-компонентов, которые мы встроили в один из наших инструментов, управляющих игрой, которую мы разрабатываем. Очень доволен этим, его было просто умственно настроить. Большие пальцы здесь.

На предыдущем концерте я использовал Final Builder в точном сценарии, который вы описали - на сервере сборки. Локальные сборки выполнялись с использованием Visual Studio. Это довольно удивительный продукт, который я бы серьезно рассмотрел, если бы у вас было немного денег, чтобы потратить. Мы получили только хорошие результаты.

В моей нынешней компании мы работали с NAnt, потому что не хотели покупать FB для каждого инженера в команде. Нам также не понравилось, как FB является закрытым исходным кодом. Итак, мы на 100% Нант и нам это нравится. Просто понадобилось время, чтобы привести его в порядок!

0 голосов
/ 25 мая 2012

В Visual Studio 2010 Microsoft наконец-то обновила формат файлов проекта Visual C ++ (.vcproj) до своего формата клонирования NAnt на базе MSnt MSBuild, который теперь называется .vcxproj. Это означает, что проекты C ++ будут компилироваться без особых усилий с использованием задачи.

Если вы можете предвидеть, что у вас будет только небольшая команда и ограниченное количество сборок, я бы порекомендовал TeamCity (http://www.jetbrains.com/teamcity/) с NAnt. TeamCity - это CI-сервер на основе Java (его легче развернуть на Сервер сборки Linux), который поддерживает отдельные агенты сборки (таким образом, у вас может быть несколько виртуальных машин Windows или выделенный блок, выполняющий ваши сборки).

Поддержка TeamCity для сборок MSBuild, NAnt и Ant превосходна, и она имеет очень приятный графический интерфейс на основе AJAX, который приятно использовать и позволяет вам настраивать и настраивать проекты из вашего браузера. Однако, если вы переступите порог 20 бесплатных проектов, это станет неоправданно дорогим, однако.

Другой вариант, который я могу порекомендовать, - это Jenkins с NAnt, Ant, MSBuild или одна из многих других систем сборки, которые может поддерживать Jenkins. Jenkins является открытым исходным кодом и будет обрабатывать неограниченное количество проектов, таких как TeamCity, который он может запускать на сервере, отправляя сборки отдельным агентам сборки, и имеет плагины для многих инструментов C ++ (например, статического анализа, модульного тестирования и упаковки).

Веб-интерфейс Jenkins не так удобен и красив, как TeamCity, но он широко используется и имеет плагины практически для всего.

0 голосов
/ 28 марта 2012

Проекты Visual Studio 2005 прекрасно подходят для запуска из командной строки! Просто сделай

devenv.com whatever.sln /build 'Release|Win32' /project whatever

(замените whatever на имя вашего проекта и Release|Win32 на необходимую конфигурацию и платформу). Это может быть тривиально выполнено CruiseControl или Jenkins или чем-то еще.

0 голосов
/ 17 ноября 2008

В дополнение к Ant CruiseControl также поддерживает NAnt и Exec .

Но если вы действительно хотите стать авангардистом, вы можете рассмотреть Rake (примерно: Rake , Начало работы с Rake на .Net ).

0 голосов
/ 17 ноября 2008

Мы используем CruiseControl.Net и NAnt (и Subversion), и мы довольны результатами.

0 голосов
/ 17 ноября 2008

Мы используем FinalBuilder для создания наших проектов Visual Studio 2005, включая упаковку окончательных версий exe и dll с помощью InstallShield и размещение их на общем сервере.

Мы также подключаемся по telnet (из FinalBuilder) к ряду других платформ (Unix / Linux / OpenVMS) и запускаем удаленные сборки, запуская там make-файлы.

Мы не используем непрерывную сборку, но есть сервер FinalBuilder, который справляется с этим и поставляется бесплатно с лицензией FinalBuilder Professional.

Мы очень довольны FinalBuilder, с ним довольно легко освоиться и достаточно мощным, чтобы решить большинство проблем.

0 голосов
/ 17 ноября 2008

Я только начал использовать Visual Build Professional и очень впечатлен. Вы можете загрузить полнофункциональную 30-дневную пробную версию здесь:

http://www.kinook.com/VBP/

SVN также полностью поддерживается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...