So führen Sie Befehlszeilenskripte aus

Dieses Tutorial zeigt Ihnen, wie Sie mit TeamCity die Befehlszeilenskripte ausführen, die die Grundbausteine Ihrer Pipelines bilden.

Wir haben zum Zwecke dieser Demonstration ein GitHub-Repository erstellt:

github.com/marcobehlerjetbrains/buildpipelines. Sie können das Repository einfach forken und den Anweisungen folgen.

Das Repo enthält 2 Microservices: Authorization-Service und Calculator-Service. Sie können die URL kopieren, zu Ihren TeamCity-Services gehen und ein neues Projekt unter Angabe der Repository-URL erstellen. Da es sich um ein öffentliches Repository handelt, müssen Sie keine Passwörter oder Zugangstoken eingeben.

tutorials-img

Im nächsten Schritt verbindet sich TeamCity mit dem Repo und erstellt daraus ein Projekt. Ihnen wird der Standard-Branch angezeigt, d. h. der Hauptbranch, der alle 60 Sekunden auf Änderungen abgefragt und zum Auslösen von Builds verwendet wird.

Mithilfe von Platzhaltern können Sie auch andere Branches angeben, die überwacht werden sollen.

tutorials-img

Build-Konfiguration in TeamCity einrichten

In TeamCity ist eine Build-Konfiguration ein Job. Wenn Sie ein Projekt einrichten, scannt TeamCity die Dateien in Ihrem Repository und erkennt automatisch die Build-Schritte.

tutorials-img

In diesem Tutorial werden wir nicht mit den automatisch erkannten Build-Schritten arbeiten, da wir unser eigenes Befehlszeilenskript ausführen wollen. Es ist jedoch gut zu wissen, dass TeamCity das VCS-Repository des Projekts scannen und geeignete Build-Schritte in Node.js, Kotlin, Python, Ant, NAnt, Gradle, Maven, MSBuild, Visual-Studio-Projektmappendateien, PowerShell, Xcode-Projektdateien, Rake und IntelliJ-IDEA-Projekten automatisch erkennen kann.

Build-Schritte konfigurieren

Um die Build-Schritte manuell zu konfigurieren, klicken Sie auf diesen Link:

tutorials-img

Da wir ein Befehlszeilenskript ausführen möchten, wählen wir im Dropdown-Menü den Eintrag Command Line aus.

tutorials-img

Im nächsten Schritt wählen wir im Dropdown-Menü die Option Run Custom Script aus und kopieren unser Buildskript in das entsprechende Feld. Wir wollen den Befehl mvn clean package ausführen. Wie viele andere Tools ist auch dieses Paket standardmäßig auf allen unseren Build-Agents installiert.

mvn clean package kompiliert die Java-Quelldateien, führt einige Tests durch und erstellt eine .jar-Datei.

Im Deployment-Schritt führen wir das AWS-Befehlszeilentool aus und kopieren dann die .jar-Datei in einen privaten S3-Bucket. Jetzt müssen wir nur noch mit Save unsere Änderungen speichern.

tutorials-img

Bevor wir zum Ausführen auf Run klicken, müssen wir die Zugangsdaten zu unserem AWS-S3-Bucket angeben: eine Zugriffsschlüssel-ID und den Zugriffsschlüssel-Geheimwert. Eine Methode dafür ist die Verwendung von Parametern in TeamCity.

Parameter hinzufügen

Klicken Sie auf Parameters | Add New Parameter. Für den Moment begnügen wir uns mit einer Umgebungsvariablen. Geben Sie AWS_ACCESS_KEY_ID als Namen ein. Sie müssen auch die Art des neuen Parameters auswählen – in unserem Fall Environment variable (env.) – und den Wert der verwendeten Zugangsschlüssel-ID eingeben.

Hinweis: Der verwendete Zugangsschlüssel dient nur zu Demonstrationszwecken – Sie können also diesen Schlüssel nicht wiederverwenden.

tutorials-img

Wir bearbeiten den Parameter weiter und setzen den Typ auf Password. Dies bedeutet, dass TeamCity den Parameterwert nicht nur in der Bedienoberfläche, sondern auch in den Protokollmeldungen und überall sonst ausblendet.

tutorials-img

Wie Sie sehen können, wird die Zugangsschlüssel-ID bereits maskiert angezeigt.

tutorials-img

Auf ähnliche Weise fügen wir eine weitere Umgebungsvariable hinzu: den Zugangsschlüssel-Geheimwert. Im Anschluss sollten wir den Build ausführen können.

Klicken Sie dazu auf die Schaltfläche Run, die Sie zur Übersichtsseite weiterleitet. Während der Ausführung des Builds zeigt TeamCity die Buildprotokolle an, in denen die Vorgänge detailliert festgehalten werden.

tutorials-img

Sobald der Buildvorgang abgeschlossen ist, zeigt TeamCity den Buildstatus und die Daten des Builds an, z. B. wann und von wem der Build ausgelöst wurde, wie lange die Ausführung gedauert hat und welcher Build-Agent verwendet wurde.

tutorials-img

Da wir Befehlszeilenskripte verwendet haben, ist das Buildprotokoll die einzige Ausgabe, die wir erhalten. Wenn wir stattdessen einen TeamCity-Runner (z. B. den Maven-Runner) verwenden, erhalten wir standardmäßig auch einen Testbericht, einen Coverage-Bericht und verschiedene weitere Vorteile – zum Beispiel eine parallele Testausführung.

Buildprotokolle lesen

Um auf das Buildprotokoll zuzugreifen, klicken Sie auf der Ausgabeseite, die Ihre Buildergebnisse anzeigt, auf den Tab Build Log. TeamCity stellt Protokolle sehr übersichtlich für Sie dar. Sie müssen nicht erst das vollständige Buildprotokoll auf Ihren Computer herunterladen und in Notepad++ öffnen (wobei Sie das natürlich auch tun können). Stattdessen zeigt Ihnen TeamCity die Buildprotokoll-Struktur reduziert an und ermöglicht mit Strg+F unkomplizierte Suchvorgänge.

tutorials-img

Das war es für heute! Sehen Sie sich unsere anderen Tutorials an, um zu erfahren, wie Sie TeamCity-spezifische Funktionen wie Test- und Code-Coverage-Berichte nutzen können.

Viel Spaß beim Builden!

Weitere Informationen finden Sie in der Befehlszeilendokumentation von TeamCity.