Also angenommen, ihr nutzt die Komponente Virtual Treeview für Delphi/C++:
Habt ihr da pro Config + Platform ein eigenes Final Builder Projekt? Also deren vier?
Hat das FinalBuilder-Projekt für die Ausgabeverzeichnisse eigene Einträge oder nimmt es die aus der Projektdatei der Komponente?
Nein. Es gibt nur ein FinalBuilder-Projekt mit diversen Action-Lists. Eine davon erzeugt über geschachtelte Iteratoren alle nötigen Ausprägungen für alle verwendeten Projekte - natürlich mit den entsprechenden Zielverzeichnissen. Da das FinalBuilder-Projekt innerhalb des CI-Prozesses läuft, sind die Verzeichnisse alle relativ zu einem Basis-Verzeichnis angegeben, das dem
FB übergeben wird (das ist bei Start des Projekts immer leer).
Manche Sachen lassen sich in der Delphi-Compiler-Action im
FB nicht so leicht variabel über den Dialog angeben. In dem Fall verwende ich dann einen Skript-Event.
Die Suchpfade werden aus der Projektdatei genommen, da die ja mit versioniert werden. Grundsätzlich sind alle Pfade in der dproj relativ. Damit kann ich ein Projekt in ein beliebiges Verzeichnis auschecken und sofort compilieren. Das ist besonders dann wichtig, wenn man mal auf einen älteren Stand zurückgreifen muss. Problematisch dabei sind nur die aktuellen Komponenten in der
IDE - da arbeite ich noch an einer brauchbaren Lösung.
Eigentlich konnte ich bisher alles ziemlich komfortabel mit
FB lösen (mit der Professional-Version). Einchecken von Code führt automatisch zu einem Continuous Build mit Tests. Eine neue Version wird über einen Mausklick erzeugt und optional auch im Web bereitgestellt. Es dauert zwar eine Weile, bis man das alles fehlerfrei am Laufen hat, aber wenn es dann läuft braucht man sich nicht weiter kümmern. In beiden Fällen wird übrigens dasselbe FinalBuilder-Projekt aufgerufen - lediglich mit unterschiedlichen Parametern.