Wussten Sie, dass Jenkins eine integrierte Unterstützung für Continuous Integration/Continuous Delivery CI/CD bietet? Die Implementierung einer Jenkins CI/CD-Pipeline in Ihrem Projekt kann den Softwareentwicklungsprozess erheblich verbessern.
Jenkins ist eines der beliebtesten Automatisierungstools für DevOps bis heute. Und wenn Sie mit der Einrichtung einer Jenkins CI/CD-Pipeline beginnen möchten, sind Sie hier genau richtig.
Lesen Sie weiter, und in diesem Tutorial erfahren Sie, wie Sie eine Jenkins CI/CD-Pipeline mit GitHub einrichten.
Voraussetzungen
Dieses Tutorial setzt voraus, dass Sie die folgenden Anforderungen erfüllen, um den Beispielen zu folgen.
Sie müssen bereits eine Jenkins-Installation haben. Die Beispiele in diesem Tutorial verwenden Jenkins v2.319.1 auf einem Windows 10 20H2-Computer.
- Deine Jenkins-Webkonsole muss über das Internet zugänglich sein.
- A Github account to which you’ll connect with the Jenkins CI CD pipeline.
- Git SCM. In diesem Tutorial wird die neueste (2.34.1) 64-Bit-Version von Git für Windows verwendet.
Vorbereitung des GitHub-Repositorys
Dieses Tutorial beinhaltet die Integration einer Jenkins CI/CD-Pipeline mit einem GitHub-Repository. Anstatt ein leeres Projekt zu erstellen, ist es schneller, ein vorhandenes Repository zu forken, um schneller loszulegen.
1. Öffne zuerst einen Browser und melde dich bei deinem GitHub-Konto an.
2. Navigiere dann zur Beispiel-Repository-URL (MyShuttle2-Anwendung von Microsoft Connect 2016). Sobald du auf der Repo-Seite bist, klicke auf die Fork-Schaltfläche oben rechts auf der Seite.

Warte, bis der Fork-Prozess abgeschlossen ist. Am Ende hast du das Repository mit dem Namen “Benutzername/MyShuttle2” in deinem GitHub-Konto, auf das du vollen Zugriff hast.
3. Füge nun eine neue Datei zum Repository hinzu, die Jenkinsfile genannt wird. Eine Jenkinsfile ist eine Textdatei, die die Definition einer Jenkins-Pipeline enthält. Diese Datei sollte im Quellcode-Repository liegen.
Auf deiner Repo-Seite klicke auf Datei hinzufügen —> Neue Datei erstellen.

4. Geben Sie Jenkinsfile als Namen für die neue Datei ein. Kopieren Sie dann den folgenden Code und fügen Sie ihn in Ihre Jenkinsfile ein.
- Der Begriff Pipeline ist eine Reihe von Anweisungen, die in Code für kontinuierliche Bereitstellung geschrieben sind.
- A stage block contains a series of steps in a pipeline, visualizing the Jenkins pipeline process.
- A step is a single task that executes a specific process at a defined time. A pipeline contains a series of steps.
Diese Jenkinsfile ist nur ein grundlegendes Beispiel für ein Pipeline-Skript. In der Produktion werden Pipeline-Skripte komplexer sein und mehrere Aktionen in einem oder allen Phasen enthalten.
Nachdem Sie den Code geschrieben haben, wird Ihre Datei wie auf dem Screenshot unten aussehen.

5. Scrollen Sie zum Ende der Seite und klicken Sie auf Neue Datei übernehmen.

Sie haben jetzt eine Jenkinsfile in Ihrem Repository.

6. Kopieren Sie schließlich die Repository-URL. Klicken Sie dazu auf Code und dann auf die Schaltfläche Kopieren. Sie benötigen die resultierende URL bei der Erstellung der Jenkins CI/CD-Pipeline.

Erstellen einer Jenkins CI/CD-Pipeline
Die Entwicklung einer Funktion umfasst viele Codeänderungen. Zwischen jeder Codeänderung gibt es eine Reihe von Aufgaben, die durchgeführt werden müssen. Diese Aufgaben können das Übernehmen von Änderungen, Kompilieren, Testen und Verpacken umfassen.
Automatisierungsdienste wie Jenkins helfen dabei, diese Schritte schnell und fehlerfrei auszuführen.
1. Öffnen Sie einen Browser, navigieren Sie zu Ihrer Jenkins-URL und melden Sie sich an.
2. Klicken Sie auf dem Jenkins Dashboard auf die Option Neues Element im Menü auf der linken Seite.

3. Geben Sie den Namen der neuen Pipeline ein. Für dieses Tutorial nennen Sie sie demoPipeline und wählen Sie die Pipeline-Vorlage aus. Klicken Sie auf OK, um fertig zu werden.

4. Aktivieren Sie das GitHub-Projektfeld im Register „Allgemein“ auf der Konfigurationsseite. Fügen Sie dann die zuvor kopierte Repository-URL in das Feld „Projekt-URL“ ein.

5. Scrollen Sie nach unten zum Abschnitt „Build-Auslöser“ und aktivieren Sie das Kontrollkästchen „GitHub-Webhook für GITScm-Polling“, wie im Screenshot unten dargestellt.

6. Scrollen Sie weiter nach unten zum Abschnitt „Pipeline“ und wählen/spezifizieren Sie die folgenden Werte:
- Definition: Pipeline-Skript aus SCM
- SCM: Git
- Repository-URL: Ihre Repository-URL

7. Scrollen Sie zum Ende der Seite und überprüfen Sie, ob der Wert „Skriptpfad“ Jenkinsfile lautet. Dieser Wert verweist auf die zuvor erstellte Jenkinsfile in Ihrem Github-Repo. Klicken Sie abschließend auf Speichern.

Konfigurieren eines Webhooks in GitHub
Um Jenkins einen neuen Job ausführen zu lassen, müssen Sie zunächst einen Webhook in der GitHub-Repository erstellen. Dieser Webhook benachrichtigt Jenkins, sobald ein neuer Push in der Repository erfolgt.
Befolgen Sie die folgenden Schritte, um einen Webhook zu erstellen.
1. Navigieren Sie zur Seite „Einstellungen“ und klicken Sie auf das Register „Webhooks“ in Ihrer GitHub-Repository. Auf der Seite „Webhooks“ klicken Sie auf „Webhook hinzufügen“.

2. Geben Sie Ihre Jenkins-URL an und fügen Sie /github-webhook/ in das Feld Payload-URL ein. Zum Beispiel HTTP://jenkinsURLhere/github-webhook/.
Ändern Sie auch den Wert des Content-Type auf application/json.

3. Auf Welche Ereignisse möchten Sie mit diesem Webhook auslösen Auswahl, klicken Sie auf die Option Lassen Sie mich einzelne Ereignisse auswählen.

4. Scrollen Sie nach unten und überprüfen Sie die Kontrollkästchen Pushes und Pull-Anfragen. Diese Optionen stellen sicher, dass GitHub während dieser spezifischen Ereignisse ein Payload an Jenkins sendet.

5. Überprüfen Sie den Webhook, indem Sie auf die Schaltfläche Webhook hinzufügen unten klicken. Wenn die Webhook-Validierung erfolgreich war, sehen Sie eine Benachrichtigung oben auf der Seite ähnlich wie im untenstehenden Screenshot.

Ausführen und Auslösen des Jenkins CI CD-Pipeline-Jobs
Jetzt, da Sie Ihre Pipeline erstellt und konfiguriert haben, wie wissen Sie, dass die Pipeline funktioniert? Jenkins bietet ein Pipeline Stage View Plugin, um Ihnen den Pipeline-Status anzuzeigen.
1. Um den Pipeline-Status zu öffnen, öffnen Sie die Pipeline in Jenkins und klicken Sie auf Status. Wie unten zu sehen ist, zeigt der Status der Stage View Keine Daten verfügbar, da es kein Ereignis gegeben hat, das die Pipeline auslösen würde.

2. Um initiale Build-Daten zu generieren, klicken Sie auf Jetzt erstellen und warten Sie, bis der Build-Vorgang abgeschlossen ist. Wie Sie unten sehen können, hat die Stage View jetzt einen Eintrag, der besagt, dass es in diesem Build keine Änderungen gibt.

3. Testen Sie nun die Pipeline, indem Sie eine neue Dummy-Datei im Repository committen. Gehen Sie dazu zurück zu Ihrem GitHub-Repository und klicken Sie auf Datei hinzufügen —> Neue Datei erstellen.
Geben Sie dummy als Namen der neuen Datei ein und stellen Sie sicher, dass Sie Inhalt hinzufügen.

Klicken Sie abschließend auf Neue Datei committen am unteren Rand der Seite.
4. Gehen Sie zurück zur Statusseite Ihrer Jenkins-Pipeline, und Sie sollten einen neuen Build-Eintrag mit einem Commit sehen, wie unten gezeigt.

Fazit
In diesem Tutorial haben Sie gelernt, wie Sie eine Jenkins CI/CD-Pipeline einrichten, um den Software-Entwicklungslebenszyklus zu automatisieren. Sie haben auch gelernt, wie Sie Jenkins verwenden, um eine Kette von Aktionen für die CI in einem Softwareprojekt aufrechtzuerhalten.
Denken Sie, dass die Jenkins CI/CD-Pipeline eine Strategie ist, die Sie auf Ihre Projekte anwenden würden? Oder gibt es eine andere, die Sie bereits verwenden und die Sie für eine bessere CI/CD-Lösung halten?