In Systemen zur kontinuierlichen Integration wird bei jeder Übermittlung von Code oder stündlich automatisch eine Kompilierung des Quellcodes gestartet. Auf diese Weise können Sie Zusammenführungen auf dem Code Management Server überprüfen.
Ab 4D v19 gibt es einen neuen Befehl, mit dem Sie die Kompilierung des Codes starten und so ein solches System einrichten können.
Starten Sie eine Kompilierung durch Programmierung
Was ist kontinuierliche Integration?
Die kontinuierliche Integration besteht darin, bei jeder Änderung des Quellcodes zu prüfen, ob das Ergebnis der Änderungen zu Regressionen in der entwickelten Anwendung führt. Das Hauptziel besteht darin, Integrationsprobleme so früh wie möglich während der Entwicklung zu erkennen.
Neuer Befehl
Der neue Befehl Compile Project ermöglicht das Kompilieren:
- das aktuelle Projekt
- ein anderes Projekt als das aktuelle Projekt
Wenn die Kompilierung erfolgreich war, gibt der Befehl ein Statusobjekt mit einer Erfolgseigenschaft zurück. Andernfalls gibt er ein Statusobjekt mit einer Liste von Fehlern zurück.
Das aktuelle Projekt kompilieren
Die Kompilierung des aktuellen Projekts mit den Standardeinstellungen ist sehr einfach:
var $status : Object
)
$status :=Compile project(
Sie können die Kompilieroptionen auch überschreiben, indem Sie ein Objekt mit den neuen Werten übergeben. Hier sind die Optionen, die Sie außer Kraft setzen können:
- Kompilierungsziel
- Typ-Inferenz
- Standardtyp für numerische Werte oder Schaltflächen
- Symbole generieren
- Generierung von Typisierungsmethoden
- Komponenten zur Verwendung bei der Kompilierung
So können Sie beispielsweise jedes Mal, wenn Code an den Versionskontrollserver übermittelt wird, eine einfache Syntaxprüfung starten, um den zusammengeführten Code zu überprüfen.
var $options; $status: Object
$options :=New object()
$options .targets:=New collection()
$status :=Compile project($options)
Wenn Ihre Anwendung Komponenten verwendet, müssen Sie die Liste der kompilierten Komponenten im Optionsobjekt übergeben.
var $options; $status: Object
var $component : 4D.File
$options :=New object()
$options .components:=Folder("/PACKAGE/Components").files(fk recursive).query("Erweiterung = .4dz")
$status :=Compile project($options)
Ein anderes Projekt kompilieren
Es ist möglich, eine Anwendung aus einem anderen Projekt zu kompilieren. Übergeben Sie einfach die Projektdatei an den Befehl:
var $file: 4D.File
$file :=Folder(fk documents folder).file("Datenbanken/meineApp/Projekt/meineApp.4DProjekt")
$status :=Compile project($file)
Verwaltung von Kompilierungsfehlern
Der Befehl gibt ein Statusobjekt zurück, das Ihnen mitteilt, ob die Kompilierung erfolgreich war oder nicht. Wenn die Kompilierung fehlschlägt, gibt 4D die Sammlung der Fehlermeldungen, die betroffenen Methoden und die Zeilennummer des Fehlers zurück.
Dann können Sie dank des neuen Parameters des METHOD OPEN PATH Befehls können Sie die Methode im Code-Editor öffnen und den Cursor auf die Fehlerzeile setzen.
Es ist zum Beispiel möglich, die Fehlersammlung in einem Listenfeld anzuzeigen und dann eine Schaltfläche hinzuzufügen, die die Methode des in der Liste ausgewählten Fehlers öffnet:
METHOD OPEN PATH(Form.selected.code.path;Form.selected.line)
Bleiben Sie dran! Wir werden demnächst weitere Blogbeiträge zur kontinuierlichen Integration veröffentlichen!