AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Probleme bei Integration von Delphi in Jenkins CI
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme bei Integration von Delphi in Jenkins CI

Ein Thema von BastiFantasti · begonnen am 13. Feb 2017 · letzter Beitrag vom 16. Feb 2017
Antwort Antwort
BastiFantasti

Registriert seit: 5. Nov 2014
Ort: Baden Württemberg
133 Beiträge
 
Delphi 11 Alexandria
 
#1

Probleme bei Integration von Delphi in Jenkins CI

  Alt 13. Feb 2017, 15:48
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 Rad Studio Plugin
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 hier berücksichtigt werden.

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.

Geändert von BastiFantasti (13. Feb 2017 um 15:56 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#2

AW: Probleme bei Integration von Delphi in Jenkins CI

  Alt 13. Feb 2017, 16:09
Läuft das Jenkins denn auch als der User, unter dem die Bibliothekspfade eingetragen sind?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
BastiFantasti

Registriert seit: 5. Nov 2014
Ort: Baden Württemberg
133 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Probleme bei Integration von Delphi in Jenkins CI

  Alt 13. Feb 2017, 16:26
Ja, ich habe auf dem Rechner aktuell nur einen Benutzer angelegt. Unter diesem wird auch der Dienst ausgeführt (nicht mehr als System).
  Mit Zitat antworten Zitat
BastiFantasti

Registriert seit: 5. Nov 2014
Ort: Baden Württemberg
133 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Probleme bei Integration von Delphi in Jenkins CI

  Alt 14. Feb 2017, 09:23
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.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Probleme bei Integration von Delphi in Jenkins CI

  Alt 14. Feb 2017, 10:43
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.
Michael Justin
  Mit Zitat antworten Zitat
BastiFantasti

Registriert seit: 5. Nov 2014
Ort: Baden Württemberg
133 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Probleme bei Integration von Delphi in Jenkins CI

  Alt 14. Feb 2017, 12:51
Vielen Dank für den Tipp.

Ich werde mal schauen ob ich da ne Anleitung dazu finde und es testen.
  Mit Zitat antworten Zitat
BastiFantasti

Registriert seit: 5. Nov 2014
Ort: Baden Württemberg
133 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Probleme bei Integration von Delphi in Jenkins CI

  Alt 14. Feb 2017, 14:45
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
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Probleme bei Integration von Delphi in Jenkins CI

  Alt 14. Feb 2017, 15:12
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
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#9

AW: Probleme bei Integration von Delphi in Jenkins CI

  Alt 14. Feb 2017, 20:23
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 )
Jenkins verwendet standardmäßig ein eigenes Arbeitsverzeichnis in dem alle Dateien aus dem Versionsverwaltungssystem ausgecheckt werden. Daher ist - egal ob mit Ant oder MSBuild - sehr wichtig, dass alle darin enthaltenen projektbezogenen Pfad- und Verzeichnisangaben relative Pfade sind. Absolute Pfade werden nur für vorgegegebene Dinge wie externe Drittanbietertools / Komponenten verwendet.

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"
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
BastiFantasti

Registriert seit: 5. Nov 2014
Ort: Baden Württemberg
133 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Probleme bei Integration von Delphi in Jenkins CI

  Alt 16. Feb 2017, 08:07
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.

Geändert von BastiFantasti (16. Feb 2017 um 08:17 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz