![]() |
Probleme bei Integration von Delphi in Jenkins CI
Hallo miteinander,
ich habe auf einem separaten Rechner einen Jenkins Build Server und Delphi 10 Seattle aufgesetzt. Als Schnittstelle zwischen Delphi und Jenkins dient das ![]() Als Quelle und Trigger für Build Vorgänge dient Subversion. Die Installation war soweit schnell erledigt und Delphi 10 als Rad Studio Umgebung eingebunden. Wichtig ist das die Hinweise ![]() Einfache Projekte lassen sich problemlos anlegen und kompilieren, nur manche Projekte (z.B. mit welchen in denen ich die Zeos Komponenten verwende) werfen beim kompilieren immer Fehler auf wie z.B.: error F2613: Unit 'ZAbstractRODataset' nicht gefunden obwohl sämtliche Pfade zu den Zeos Komponenten im Bibliothekspfad für 32 und 64 bit hinterlegt sind und das händische kompilieren auf dem selben Rechner problemlos klappt. Es scheint, als ob der Bibliothekspfad nicht korrekt ausgewertet wird, wenn der Build via MSBuild angestossen wird. Pfade die in den Suchpfad des Projekts aufgenommen werden funktionieren hingegen. Hat hier eine(r) schon Erfahrungen sammeln können und eventuell eine Idee parat? Danke im Voraus. Bastian [edit] Alternativ hab ich versucht das Projekt via Windows Batchfile zu erstellen, anstelle des Rad Studio Plugins. Das Ergebnis ist leider identisch. |
AW: Probleme bei Integration von Delphi in Jenkins CI
Läuft das Jenkins denn auch als der User, unter dem die Bibliothekspfade eingetragen sind?
|
AW: Probleme bei Integration von Delphi in Jenkins CI
Ja, ich habe auf dem Rechner aktuell nur einen Benutzer angelegt. Unter diesem wird auch der Dienst ausgeführt (nicht mehr als System).
|
AW: Probleme bei Integration von Delphi in Jenkins CI
Ich habe gesehen, dass wenn Änderungen an den Pfaden im Delphi gemacht werden auch die Datei EnvOptions.proj unterhalb von
c:\users\<name>\appdata\roaming\embarcadero\BDS\17 .0 gemacht werden. Dies ist wohl auch eine Datei die für MSBuild benötigt wird. Hier sind die Pfade zu den Zeos Komponenten richtig eingetragen. |
AW: Probleme bei Integration von Delphi in Jenkins CI
Seit Delphi 7 setzen wir in der Firma Hudson bzw. Jenkins in Verbindung mit Apache Ant ein (wird von Jenkins out of the box unterstützt). Das Ant Buildfile ist eine XML Datei in der man den Delphi Compiler mit den entsprechenden Parametern aufgerufen wird. (MSBUILD wird damit aus der Gleichung eliminiert). Wenn ich mich zwischen Builds per Batchdateien und Ant entscheiden müßte, würde ich Ant nehmen.
|
AW: Probleme bei Integration von Delphi in Jenkins CI
Vielen Dank für den Tipp.
Ich werde mal schauen ob ich da ne Anleitung dazu finde und es testen. |
AW: Probleme bei Integration von Delphi in Jenkins CI
Hast du mir da eventuell ein solches Beispiels XML File für Ant?
Bin jetzt einen Schritt weiter gekommen, aber mit Kompilerdirektiven kommt MSBuild irgendwie auch nicht so richtig klar (oder ich komm mit dem Handling der Kompilerdirektiven von MSBuild nicht klar :) ) Danke schon mal im voraus |
AW: Probleme bei Integration von Delphi in Jenkins CI
Jenkins und Delphi mit MSBuild läuft bei uns gut:
Du musst auf jeden falls rsvars.bat aufrufen:
Code:
call "D:\Programme\Embarcadero\Studio\14.0\bin\rsvars.bat"
Und dann das Projekt
Code:
msbuild "<PfadZumProjekt>\MyProject.dproj" /p:config=Release
|
AW: Probleme bei Integration von Delphi in Jenkins CI
Zitat:
Man kann einen Jenkins Job auch so konfigurieren, dass das Projekt in einem definierten Vereichnis ausgecheckt wird, wenn man die absolute Pfade des Projekts beibehalten will oder muss (z.B. wenn man ohne Änderungen an den Projekten Jenkins ausprobieren will). Dazu gibt es eine Einstellung "Change folder of workspace" |
AW: Probleme bei Integration von Delphi in Jenkins CI
Guten Morgen zusammen,
das erste Problem mit den externen Bibliotheken wie zeos Komponenten ist gelöst. Irgendwie stand dem Benutzer das Laufwerk nicht zur Verfügung auf dem diese Quellen abgelegt sind. Obwohl das Laufwerk zugewiesen war und der Jenkins Dienst mit dem gleichen Benutzer ausgeführt wird. Das Ergebnis ist mit dem MSBuild Aufruf via Windows Batch ist gleich wie der Aufruf über das Rad Studio Plugin. Ich glaube das Rad Studio Plugin macht sowieso nix anderes als die rsvars im jeweils konfigurierten Delphi aufzurufen und dann msbuild nachzuschieben. Jetzt habe ich nur noch das Problem, dass die Parameter nicht richtig an MSBuild übergeben werden. Ich habe in einem Projekt mehrere Build Spezifikationen unterhalb von Release. Also z.B.: Release ->Release_X1 ->Release_X1_demo ->Release_X2 ->Release_X2_demo Wenn ich nun in den Switches definiere: /p:config=Release_X1 /p:platform=Win32 Versucht MSBuild alle Builds durchzukompilieren und nicht nur die explizit angegebene Release_X1 Konfiguration. @mjustin: Ja, so habe ich das implementiert. Alle Pfade sind relativ, ausser z.B. die zeos Komponenten, oder wenn installiert die J(V)CL Bibliothek. Die sind dann mit festem Pfad in den Delphi Einstellungen hinterlegt [edit] ... und noch komischer ist, dass alle Konfigurationen einzeln in der IDE problemlos durchkompiliert werden können. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz