Подтвердить что ты не робот

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

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

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

Я ищу ресурсы, идеи и место для начала. Я не знаю, как использовать MS Build для этой цели. У Стива Треветена есть запись в блоге, которая ведет к небольшому обсуждению старой сборки командной строки dcc32, и в некоторых комментариях упоминается сборка ms, которая была здесь с 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

4b9b3361

Ответ 1

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.

Ответ 2

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

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

Ответ 3

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

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

отметка