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.
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.
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.
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.
Um die Build-Schritte manuell zu konfigurieren, klicken Sie auf diesen Link:
Da wir ein Befehlszeilenskript ausführen möchten, wählen wir im Dropdown-Menü den Eintrag Command Line aus.
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.
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.
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.
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.
Wie Sie sehen können, wird die Zugangsschlüssel-ID bereits maskiert angezeigt.
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.
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.
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.
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.
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.
Erfahren Sie, wie Sie einen „SSH Exec“-Buildschritt in Ihre Build-Konfiguration aufnehmen und wie Sie einen SSH-Schlüssel in TeamCity hochladen, um ihn an Build-Agents zu übergeben.
TeamCity bietet einen großen Funktionsumfang für die Optimierung Ihrer Builds. In diesem Tutorial erfahren Sie, wie Sie spezielle Runner verwenden können und warum dies sinnvoll ist.
In TeamCity können Sie mithilfe von Artefakten unkompliziert Daten aus Ihren Builds exportieren. In diesem Tutorial sehen wir uns genauer an, wie Sie in TeamCity mit Artefakten arbeiten können.