Nachdem wir Jenkins installiert und grundlegend eingerichtet haben, kümmern wir uns nun um die Erstellung eines Build-Jobs.

Am einfachsten richten wir uns zuerst den Job mit einem Jenkinsfile ein. Diese Datei beschreibt den Prozess, wie das Projekt korrekt erstellt wird. Da diese Datei ebenfalls im Git-Repository abgelegt wird, kann jeder Entwickler das Skript anpassen, sofern es nötig ist und Änderungen nachverfolgen.

Die Ordnerstruktur des Beispielprojekts

Um den Prozess exemplarisch zu zeigen, habe ich ein einfaches Repository vorbereitet. Der einzige Quellcode besteht aus einem „leeren“ Konsolenprojekt. Dieses ist kompilierbar und gibt „Hallo Welt“ aus.

Projekt in Jenkins anlegen

Zuerst müssen wir die Pipeline in Jenkins anlegen. Dazu öffnen wir „Blue Ocean“ und erstellen ein neues Projekt.

Öffnen von Blue Ocean

Aufgrund der neuen Installation sind noch keine Pipelines vorhanden. Daher erscheint ein Popup mit dem Hinweis, die erste Pipeline zu erzeugen. Mit einem Klick darauf wird die Einrichtung automatisch begonnen.

Startbildschirm aufgrund fehlender Konfigurationen

Der Dialog ist einfach aufgebaut und führt den Nutzer super durch den Erstellungsprozess.

  1. Zuerst wird die Quelle angegeben. In meinem Fall ist es „Git“
  2. Anschließend benötigen wir die URL und eventuelle Berechtigungen (Nutzername + Passwort)
  3. Mit dem Button „Create Pipeline“ wird die Pipeline erstellt
Dialog zum Erstellen einer Pipeline

Wenn ihr kein Jenkinsfile in eurem Projekt habt, weist euch ein Popup darauf hin. Mit einem Klick könnt ihr die Datei erzeugen. Wir werden die Datei allerdings mit einem Editor erzeugen und per git push im Repository speichern.

Jenkinsfile erzeugen

Im Standard heißt die Datei einfach Jenkinsfile ohne jegliche Dateiendung. In der ersten Zeile steht pipeline. Über agent können Zielrechner definiert oder eingeschränkt werden. Dies ist nützlich, wenn eine Software beispielsweise nur mit einem bestimmten Betriebssystem erstellt werden kann.

Im stages-Block werden die einzelnen Schritte definiert. Für den Schritt der Erstellung rufen wir mittels shell (sh, da Jenkins auf Linux installiert wurde) dotnet build auf. Unter windows stehen bat oder powershell zur Verfügung.

pipeline {
    agent any

    stages {
        stage('Restore') {
            steps {
                sh 'dotnet restore Example/Example.sln'
            }
        }
        stage('Build') {
            steps {
                sh 'dotnet build Example/Example.sln'
            }
        }
    }
}

Der Prozess zum Klonen des Quellcodes muss nicht separat geschrieben werden. Dies geschieht automatisch. Es gibt in der Dokumentationen weitere Informationen, falls der Prozess angepasst werden muss.

Mit dem o.g. Beispiel erhalten wir folgende grafische Ausgabe:

Das Ergebnis der Buildausgabe

In dieser Grafik sehen wir oben die Namen der jeweiligen Schritte. Mit einem grünen Haken wird angezeigt, ob der Schritt erfolgreich abgeschlossen werden konnte. Im Fehlerfalle gibt es ein rotes X. Die einzelnen Schritte werden unten angezeigt. Die Einträge lassen sich aufklappen, um die Konsolenausgabe einzublenden.

Mit dem Bleistift ganz oben rechts könnt ihr das Jenkinsfile im grafischen Editor bearbeiten. Aus meiner Erfahrung, ist diese jedoch sehr rudimentär gehalten und kann manche „Fehler“ nicht korrekt verarbeiten oder behandeln.
In der Zukunft wird dieser Editor bestimmt besser und besser werden. Derzeit ist die manuelle Bearbeitung des Jenkinsfile im Editor einfacher.

Fazit

Dieser Artikel hat gezeigt, wie ein Build-Script mit Hilfe des Jenkinsfile grundlegend erstellt und eingerichtet wird. Durch sh oder bat können externe Programme aufgerufen werden. Viel Spaß beim Ausprobieren und Erstellen eurer Pipeline 🙂


Bildnachweis: Pixabay.com