Autor Beitrag
doublecross
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 149
Erhaltene Danke: 27

Windows 7
C#; Visual Studio 2015
BeitragVerfasst: Fr 28.04.17 15:26 
Hallo,

ich überlege in kürze einen Builderver auf Basis von Jenkins aufzusetzen. Hierbei sollen die Projekte anhand einer Versionsnummer (entspricht einen GIT-Tag) ausgeheckt und gebuilded werden. Hierbei muss es immer auch möglich sein alte Versionen erneut zu erzeugen.

Beim durchspielen des "Szenarios" alte Version bin ich auf folgenden Sonderfall gestoßen:

Angenommen es gibt ein "Produkt" welches über den Buildserver erzeugt werden soll. Die Versionen 1.* von Produkt wurden in Delphi 7 entwickelt, mit den Wechsel auf die Version 2.* wurde dann aber der Compiler auf Delphi 2007 umgestellt (warum auch immer man mit so alten Versionen arbeiten sollte). Wenn ich nun also den Build Auftrag für eine 1er Version absetzt sollte der Delphi 7 Compiler zum Einsatz kommen, bei neueren Versionen der 2007er.

Die Frage ist nun, wie löst man dieses Problem am besten? Ich könnte mir folgende Lösungen vorstellen, weiß aber nicht ob und wie sie sich umsetzen lassen:

  • Die Entwicklungstools werden mit dem Projekt eingecheckt und vom Build Prozess verwendet. (Ja, das würde die Projekte ziemlich aufblähen)
  • Es wird eine Informationsdatei im Projekt mit eingecheckt welche dann vor dem eigentlichen Build ausgewertet wird und über das verwendete Werkzeug entscheidet.
  • Das Build Skript weiß für welche Versionen welches Werkzeug zu verwenden ist und entscheidet dies selbst.
  • Es wird bei jedem Compiler Wechsel eine neue Chain erzeugt, welche eben nur auf die passenden Versionen angewandt werden darf.


Fallen euch noch weitere ein? Gibt es für dieses Szenario Vorgehensweisen, die sich bewährt haben?