Dies ist der erste Beitrag zu unserer Blogserie “Neu in TFS 2018”, der sich mit konkreten Erweiterungen des Buildsystems im TFS beschäftigt. Dabei geht es nicht um grundlegende Veränderungen, vielmehr um nützliche Erweiterungen, die wir in diesem Blogpost vorstellen.
Das Buildsystem, welches in TFS 2015 eingeführt wurde, erfüllte vielen Anwendern einen sehnlichen Wunsch, nämlich historische Aufzeichnungen, wer eine Build Definition wann und wie verändert hat. Dafür wurde eine auf JSON basierte Repräsentation gewählt. Schnell kam der Wunsch auf, manuell Änderungen im JSON vorzunehmen oder Builds auf der JSON-Basis zu ex- und importieren.
Insbesondere beim Wechsel auf ein neues Major-Release oder auch bei technologisch ähnlichen Projekten möchte man gern eine ggf. über lange Zeit hinweg gewachsene Build Definition wiederverwenden. Dies ist nun leicht möglich, da es im User Interface eine einfache Ex- und Import-Funktionalität gibt (siehe folgende Abbildung).
Im Ergebnis erhält man eine JSON-Datei, die wie folgt aussieht:
Die dazu verfügbare REST API stellt einen weiteren interessanten Aspekt dar. So kann man mittels eines einfachen REST-Aufrufes während der Buildausführung die Build Definition exportieren und als JSON, beispielsweise mit in der Drop Location ablegen. Dadurch wird die Reproduzierung eines einst erstellten Builds sehr viel einfacher, da man auf einfache Weise, das beim Zeitpunkt des Builds entstandene JSON-File importieren kann. Dieser Unterbau ist nicht neu, vielmehr ist die neue Export Funktionalität “nur” das User Interface dazu. Die REST API lässt sich jedoch wie zuvor beschrieben hervorragend für den automatisierten Export verwenden.
Eine weitere interessante Neuigkeit ist die Möglichkeit Build Templates als Extension zur Verfügung zu stellen. Wenn man, wie im Beispiel oben beschrieben, immer wieder ähnliche Build Definitionen benötigt, sind auch eigene Build Templates eine Option. Dabei kann man, ähnlich wie die bereits vordefinierten Build Templates, eigene Templates anlegen, die beim Erstellen einer neuen Build Definition zur Auswahl stehen. Nachfolgend ist der Auszug eines Beispiels zu sehen, welches vollständig auf GitHub zu finden ist.
Im Bereich Build und Release Management stecken in TFS 2018 noch mehr Neuigkeiten, von denen wir in weiteren Blog Posts berichten.