Delphi Build Automation и непрерывная интеграция возможны только с использованием MS Build? - PullRequest
22 голосов
/ 22 февраля 2010

Я собираюсь внедрить систему с непрерывным модульным тестированием, которую я слышал, назвал "smoketest" или "tinderbox", (сервер сборки, который выполняет чистые проверки контроля версий и полные сборки системы всего в заданном исходный репозиторий или проект) и что-то вроде «непрерывной интеграции» для небольших групп с Delphi.

Мне не хочется связываться с коммерческим продуктом "build server", и я надеюсь, что смогу сделать многое из этого только с поддержкой MS-Build, встроенной в delphi.

Я ищу ресурсы, идеи и место для начала. Я не знаю, как использовать MS Build для этой цели. Стив Треветен имеет сообщение в блоге, которое ведет к небольшому обсуждению старой сборки командной строки dcc32, и в некоторых комментариях упоминается ms-build, которая была здесь с delphi 2007. Я использую Delphi 2010. Я ищу для руководства, понимания и опыта, которые скажут мне, является ли это разумным путем, и если нет, то каким путем я должен идти вместо этого?

Я обнаружил, что вы можете переопределить Unit (DCU) и выходной каталог EXE из командной строки msbuild с помощью / p: DCU_DcuOutput =. Обратите внимание, что я посмотрел на XML внутри моих файлов DPROJ, чтобы выяснить, как переопределить материал.

Однако он выполняет только make, а не build, и / t: rebuild не работает (edit: да, он работает. Он отлично работает с файлами DPROJ, но не с GroupProjects.)

Хотелось бы, чтобы где-нибудь было больше документации MSBuild-with-Delphi? Справка по MS-Build в документации по продукту «Rad Studio 2010» показывает одну или две вещи, относящиеся к MS-Build, но на самом деле она отрывочна и неполна.

Похожие вопросы:

Командные строки MSBuild

Ответы [ 3 ]

16 голосов
/ 22 февраля 2010

Delphi 2010 использует MSBuild в качестве основного движка сборки. Это означает, что IDE и командная строка делают одно и то же. Это также означает, что вы можете легко создавать существующие проекты из командной строки. На самом деле, мы в команде Delphi все время делаем именно это. Вам не нужно беспокоиться о переключателях для самого компилятора - файл DProj, созданный в среде IDE, будет

В меню «Пуск» находится командная строка для использования MSBuild с существующим проектом Delphi. Он правильно настраивает среду, так что вы можете просто позвонить:

msbuild myproject.dproj

Вы также можете вызывать определенные конфигурации сборки из командной строки, используя IDE, чтобы легко создавать указанные конфигурации, используя параметры командной строки для MSBuild.

Если вы хотите создать среду самостоятельно, вы можете запустить командный файл rsvars.bat, чтобы все настроить. Этот файл находится в каталоге \ bin и должен быть доступен из командной строки по умолчанию.

Файл содержит следующее:

@SET BDS=<your BDS directory>
@SET BDSCOMMONDIR=C:\Users\Public\Documents\RAD Studio\7.0
@SET FrameworkDir=C:\Windows\Microsoft.NET\Framework\v2.0.50727
@SET FrameworkVersion=v2.0.50727
@SET FrameworkSDKDir=
@SET PATH=%FrameworkDir%;%FrameworkSDKDir%;%PATH%
@SET LANGDIR=EN

Таким образом, если вы хотите создать собственную сборку непрерывной интеграции, вы можете легко управлять сборкой Delphi с помощью MSBuild.

11 голосов
/ 22 февраля 2010

dproj и groupproj - это файлы msbuild, и вы можете заглянуть в них. Другие части информации находятся в пути установки msbuild (C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727). Там вы найдете несколько файлов Borland. *. Target.

Внутри скриптов msbuild вы можете видеть различные цели, названные с помощью. Например, групповой файл содержит цели Make, Clean и Build, которые можно указать с помощью параметра / t. То же самое касается файлов dproj. Файлы dproj также имеют цель ReBuild. Это делает Чистку, а затем Сборку. Если вы хотите получить тот же эффект для группового файла, вы можете указать две цели: / t: Clean; Build

Вы также найдете множество параметров, которые вы можете установить с помощью / p. Как, например, Configuration для указания конфигурации или DCC_Quiet для указания dcc32 прекратить вывод бесполезных пробелов.

Таким образом, выполнение сборки с выпуском конфигурации из командной строки является следующей командой:

msbuild mygroup.groupproj /p:Configuration=Release /t:Build

отказ от ответственности: Я посмотрел файлы msbuild для Delphi 2007. Более поздние версии Delphi могли изменить имя целей или параметров. Просто загляните в сценарии msbuild, чтобы узнать, что есть что.

4 голосов
/ 23 февраля 2010

Я не уверен, что это именно то, что вам нужно, но у меня есть CruiseControl.NET для непрерывной интеграции - и тестов DUnit - для Delphi 2009. В CCNET есть специальный набор задач для MSBuild и, кроме нескольких проблем с настройкой, он отлично работает для меня.

Я могу сообщить вам, что я должен был сделать, чтобы они работали, если вам нужно.

Mark

...