Автосборка проекта Delphi 2009 из git при помощи Jenkins

Саша147
Дата: 07.11.2019 15:57:33
Всем привет!

Имеется довольно старый проект на Delphi 2009 + oracle 11 + git. Хотелось бы настроить автосборку проекта средствами Jenkins: чтобы грубо говоря я указал из какой ветки хочу собрать проект, и Jenkins на выходе бы мне сгенерил exe. Читал на просторах интернета, что есть возможность собрать exe при помощи запуска bat файла, которые вызывает dcc32.

Подскажите, какие тут существуют подводные камни, и существуют ли сторонние плагины, собирающие проект delphi? Какая существует стандартная практика, какой опыт у вас был?

Заранее спасибо!
makhaon
Дата: 07.11.2019 21:17:25
запускаю батник, который запускает другие для сборки проектов msbuild'ом
Саша147
Дата: 08.11.2019 10:11:05
makhaon, а можно подробнее? и как этот батник запускается в дженкинсе?
makhaon
Дата: 09.11.2019 15:37:25
Саша147,

дженкинсом не пользуюсь.
для запуска msbuild'а может помочь вот это все:
https://stackoverflow.com/questions/6870282/how-are-delphi-environment-variables-such-as-bds-evaluated
https://www.sql.ru/forum/1039192/kak-skompilit-dproj-s-komandnoi-stroki
пример запуска:
msbuild /target:Build /p:config=Relase;platform=Win32;DCC_ExeOutput=d:\outexe\%1\%2\;DCC_Define="%1";DCC_Define="%2"
Sashaua
Дата: 09.11.2019 18:54:21
Батником можно так запустить сборку
call "C:\Delphi10\Embarcadero\Studio\18.0\bin\rsvars.bat"
echo PATH 
cd %1
echo  PROJECTNAME
msbuild %2
Саша147
Дата: 12.11.2019 20:12:58
Sashaua
Батником можно так запустить сборку
call "C:\Delphi10\Embarcadero\Studio\18.0\bin\rsvars.bat"
echo PATH 
cd %1
echo  PROJECTNAME
msbuild %2


Спасибо! Попробовал этот вариант. На одной машине работает, а на другой - delphi 2009 из абсолютно другого установщика - ругается на недоступность работы delphi из командной строки...Может, попробовать кряк какой-нить, чтобы лицензию прописать...?
Sinemurius
Дата: 13.11.2019 09:21:28
http://mraven.ru/files/Raven_Link_ver_1_6.zip

Проект распаковывается в любую папку. Установка, перекомпилирование всех утилит, dll, библиотек осуществляет консольная программка RMSInstaller.exe.
Все настройки в RMSInstaller.ini.

Он может: выбирать версию Delphi (если установлено несколько версий на компе), компилировать любые проекты, в т.ч. dpk, устанавливать Design time пакеты в IDE, устанавливать путь к исходникам, устанавливать help для IDE. Все легко и удобно настраивается в RMSInstalle.ini

Всю библиотеку RavenLink устанавливать Вам не нужно, просто распакуйте и возьмите файлы RMSInstaller.exe и RMSInstaller.ini. Отредактируйте ini-шку для Вашего проекта и все.

Там кстати и исходники утилитки есть, если что.

Пример настроек:

автор
; Скрипт установки.
; Глобальная переменная %GetDir% равна каталогу с RMSInstaller.exe


; Команда проверяет: установлена ли Delphi в системе
; Если в системе установлено несколько версий Delphi, то будет предложено выбрать одну для установки
; Если в системе одна версия, то она будет выбрана сразу, без вопросов
; Если в системе Delphi не найдена, то команда завершится с ошибкой
; В итоге команда должна сформировать глобальную переменную %FullRegKey%
; содержащую ветку реестра с информацией о экземпляре Delphi
; Например для версии Delphi 10.2 она будет равна 'SOFTWARE\Embarcadero\BDS\19.0'
[DelphiVersion]

; Компиляция dpk пакета
[dcc32]
-B
-U"%GetDir%\source\components";"%GetDir%\source\components\bpl"
-LE"%GetDir%\source\components\bpl"
-LN"%GetDir%\source\components\bpl"
"%GetDir%\source\components\RavenLink.dpk"

; Устанавливаем BPL
[WriteRegistry]
RootKey=HKCU
RegKey=%FullRegKey%\Known Packages
ValueName=%GetDir%\source\components\bpl\RavenLink.bpl
ValueString=Raven Link Library

; Устанавливаем путь к исходникам библиотеки
; Там достаточно сложный алгоритм, поэтому делаем для этой цели отдельный обработчик
[SourcePath]
Value=%GetDir%\source\components

; Устанавливаем IDE Help
[WriteRegistry]
RootKey=HKCU
RegKey=%FullRegKey%\Help\HtmlHelp1Files
ValueName=Raven Link Help
ValueString=%GetDir%\doc\RavenLink.chm

; Плагин доступа к Firebird серверу
[dcc32]
-B
-U"%GetDir%\source\components"
-E"%GetDir%\out\RavenLinkServer\plugins"
"%GetDir%\source\plugins\RavenLinkFB\RavenLinkFB.dpr"