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.
Build-Runner sind TeamCity-Komponenten, die die Integration mit einem bestimmten Build-Tool (Ant, MSBuild, Befehlszeile usw.) ermöglichen. Ein Build-Runner stellt Einstellungen bereit, mit denen Sie festlegen können, welche Build-Aufgaben ausgeführt werden sollen, welche Version des Build-Tools verwendet werden soll, welches Docker/Linux-Image als Container verwendet werden soll usw. In einer Buildkonfiguration wird festgelegt, wie der Build-Runner den Build ausführen und die Ergebnisse melden soll. TeamCity bietet standardmäßig zahlreiche Build-Runner, unter anderem für .NET, Maven, Gradle, Docker, Python, Node.js und viele weitere Systeme.
Wir wollen eine Build-Konfiguration öffnen und bearbeiten. Hier haben wir einen Build-Schritt – und zwar einen Befehlszeilen-Schritt. Das Skript enthält die folgenden Befehle:
cd
mvn clean package
.jar
-Datei in einen privaten S3-Bucket Hier wollen wir den Schritt mvn clean package
löschen und stattdessen die Maven-spezifischen Funktionen von TeamCity verwenden. Wir können die Zeile im benutzerdefinierten Skript einfach entfernen und mit Save speichern:
Im Anschluss fügen wir einen neuen Build-Schritt hinzu. TeamCity schlägt vor, einen speziellen Runner zu verwenden:
Für jede Technologie, die in TeamCity integriert ist, steht ein eigener Runner zur Verfügung. Wenn Sie zum Beispiel .NET-Projekte kompilieren möchten, wählen Sie einen .NET Runner. Wenn Sie Befehlszeilenskripte ausführen möchten, verwenden Sie einen Befehlszeilen-Runner. Für Docker-spezifische Schritte würden Sie einen Docker-Runner verwenden, für Gradle-Projekte einen Gradle-Runner, und so weiter für andere Technologien.
Die vollständige Liste der Build-Runner in TeamCity finden Sie in unserer Dokumentation.
Da wir mit einem Maven-Projekt arbeiten, wählen wir in der Dropdown-Liste Maven aus. Danach füllen wir einige Felder aus, die TeamCity bei diesem Schritt vorschlägt.
Unsere Datei pom.xml
befindet sich im Calculator-Service-Verzeichnis, also klicken wir auf das Baumstruktur-Symbol, um den richtigen Ordner auszuwählen. Dank der übersichtlichen Verzeichnis-Baumstruktur müssen Sie den Verzeichnisnamen nicht manuell eingeben (und sich dabei womöglich vertippen). Sie können das Verzeichnis einfach aus der Liste wählen.
Sie können den Schritt mvn clean package
innerhalb eines Docker-Containers ausführen, indem Sie den Namen eines Docker-Image in einem Docker-Hub angeben, zum Beispiel maven:latest
. TeamCity ruft dieses Image ab, startet es transparent als Docker-Container, führt darin den Maven-Zielbefehl mvn clean package
aus und entsorgt den Container anschließend.
Um die Build-Schritte manuell zu konfigurieren, klicken Sie auf diesen Link:
In TeamCity können Sie einen bestimmten Coverage-Runner auswählen. Zum Beispiel können Sie die Code-Coverage-Runner von IntelliJ IDEA oder JaCoCo hinzufügen, anstatt eine feste Einstellung aus Ihrer pom.xml
-Datei zu verwenden.
Fügen wir com.jetbrains.teamcity.*
als Paketmuster hinzu. TeamCity analysiert dann die Code-Coverage der Pakete, deren Name diesem Muster entspricht.
TeamCity bietet auch erweiterte Konfigurationsoptionen. Zum Beispiel können Sie unterschiedliche Maven-Projektversionen oder eine bestimmte Java-Version zum Ausführen des gesamten Projekts auswählen.
Dank dieser Vielfalt an Optionen in der Bedienoberfläche müssen Sie sich keine Gedanken darüber machen, ob Ihr Befehlszeilenaufruf wohl funktionieren wird oder nicht. TeamCity nimmt Ihnen diese Bürde ab.
Jetzt haben wir einen Befehlszeilen-Schritt und danach den Maven-Schritt. Wir wollen nun unsere Build-Schritte so anordnen, dass mvn clean package
zuerst ausgeführt wird und erst dann über die Befehlszeile der Upload zu S3 erfolgt.
Danach klicken Sie einfach auf Run, und alles sollte wie erwartet funktionieren.
Sobald der Buildvorgang abgeschlossen ist, können Sie die Build-Übersichtsseite aufrufen. Hier finden Sie neue Tabs wie Maven Build Info und Code Coverage sowie einen neuen Bereich für Tests und Code Coverage-Ergebnisse.
Maven-Build-Informationen
Auf der Seite Maven build info erhalten Sie einen Überblick darüber, welche Ziele mit welcher Maven-Version ausgeführt wurden. Sie sehen auch die erzeugten Artefakte – zum Beispiel die von Maven erzeugte .jar
-Datei.
Der Bericht zeigt außerdem alle Abhängigkeiten (samt Versionsangabe), die Maven für diesen Build abgerufen hat. So erhalten Sie einen Überblick über die Bibliotheken, die in Ihrem Build enthalten sind. Diese Informationen sind auch bei der Fehlersuche hilfreich.
Sie sehen auch alle effektiven Maven-Plugins, die während des Buildvorgangs aktiviert wurden.
Test-Übersichtsseite
Die Test-Übersichtsseite, die Sie bei Verwendung des Maven-Runners ohne weiteres Zutun erhalten, enthält zahlreiche nützliche Informationen. Folgende Informationen können Sie im Bericht nachlesen:
Zu jedem Test wird außerdem ein Testverlauf bereitgestellt, der alle wichtigen Informationen zum Test enthält. Der Testverlauf ist hilfreich, wenn Sie Probleme untersuchen müssen, die bei Tests auftreten können. Zum Beispiel: „Warum dauert dieser Test plötzlich länger?“, „Ist dieser Test unzuverlässig?“ und so weiter.
In diesem Video gehen wir ausführlich auf Testberichte ein.
Code-Coverage-Bericht
Der Code-Coverage-Bericht stellt uns Informationen über die verwendeten Klassen und Methoden sowie den Prozentsatz des durch Tests abgedeckten Codes bereit.
Sie müssen nur ein paar Dropdown-Optionen im Code-Coverage Runner von IntelliJ IDEA auswählen, um alle diese Berichte in der Bedienoberfläche von TeamCity zu erhalten.
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!
Dieses Tutorial zeigt Ihnen, wie Sie mit TeamCity die Befehlszeilenskripte ausführen, die die Grundbausteine Ihrer Pipelines bilden.
In diesem Video zeigen wir Ihnen, wie Sie einen Build zum Erstellen und Hochladen von Artefakten konfigurieren, den Build ausführen und anschließend die Artefakte über die TeamCity-Oberfläche herunterladen können.
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.