CI/CD-Pipelines in Gitlab
Ziel
In diesem Projekt geht es um die Verwendung einer bestehenden CI/CD-Pipeline. Wann und wie wird sie ausgeführt? Wie lässt sich eine CI/CD-Pipeline in den Entwicklungsprozess einbinden?
Sie sollen:
- Sich mit der Schulungsumgebung vertraut machen.
- Eine CI/CD-Pipeline über unterschiedliche Wege starten
Hilfsmittel
- Versuchen Sie zuerst, die unten stehenden Aufgaben mit Hilfe der Folien zu lösen.
- Sollten Sie dabei Probleme haben, finden Sie bei jeder Aufgabe einen ausklappbaren Block, in dem der Lösungsweg beschrieben wird.
Aufgabe 1 - Schulungsmaschine einrichten
- Die Schulungsmaschinen sind unter
code-{ZAHL}.labs.corewire.de
zu erreichen. Ersetzen Sie{ZAHL}
mit der Ihnen zugewiesenen Zahl. - Beispiel für die Zahl 5:
code-5.labs.corewire.de
. - Beispiel für die Zahl 11:
code-11.labs.corewire.de
. - Geben Sie danach das Ihnen zugewiesene Passwort ein.
- Sie haben nun Zugriff auf die Schulungsmaschine.
Aufgabe 2 - Bei Gitlab anmelden
- Melden Sie sich auf der Gitlab-Instanz für diese Schulung an: https://git.labs.corewire.de/
- Username:
user-{ZAHL}
- Passwort: wird mitgeteilt
- Öffnen Sie das Projekt
gitlab-ci-demoapp
- Das Projekt enthält die eben gezeigte Demo-Anwendung
Aufgabe 3 - Issue-MR-Workflow
3.1 Issue anlegen
- Eröffnen Sie ein Issue für einen fiktiven Fehler/ ein fehlendes Feature
Lösung (Klicken Sie auf den Pfeil, falls sie nicht weiterkommen)
- Stellen Sie sicher, dass Sie im Projekt
gitlab-ci-demoapp
sind. Oben links im Menü steht das aktuell geöffnete Projekt - Klicken Sie links im Menü auf Issues
- Auf dieser Seite können Sie rechts oben über "New Issue" ein Issue anlegen
- Geben Sie einen Title (z.B. "Bug: xxx funktioniert nicht") ein
- Weitere Eingaben sind nicht erforderlich
- Erstellen Sie das Issue unten mit "Create Issue"
3.2 Merge Request anlegen
- Das eben erstellte Issue möchten Sie nun bearbeiten/lösen.
- Erstellen Sie aus dem Issue heraus einen Merge Request:
- (Optional) Passen Sie den Branch-Namen an, indem sie ihm ein Präfix
fix/...
geben - Weisen Sie sich den Merge Request zu
- Erstellen Sie den Merge Request
- (Optional) Passen Sie den Branch-Namen an, indem sie ihm ein Präfix
Lösung (Klicken Sie auf den Pfeil, falls sie nicht weiterkommen)
- Mit dem Erstellen des Issues wurden Sie automatisch auf das Issue weitergeleitet
- Hier finden Sie den Button "Create Merge Request" mit einem Pfeil daneben.
- Klicken Sie auf den Pfeil
- Hier können Sie den Branch, der erstellt wird, anpassen. Geben Sie
fix/
als Präfix vor dem bestehenden Namen ein. - Klicken Sie auf "Create Merge Request"
- Auf der Seite "New merge request", die sich geöffnet hat, können Sie sich unter "Assignee" den Merge Request zuweisen.
- Erstellen Sie anschließend den Merge Request
3.3 Issue überprüfen
- Öffnen Sie Ihr erstelltes Issue in einem neuen Tab
- Unter "Related merge requests" sollte ihr Merge Request verknüpft sein
- In den Aktivitäten sehen Sie, dass ein Branch angelegt wurde
Lösung (Klicken Sie auf den Pfeil, falls sie nicht weiterkommen)
- In die Beschreibung des Merge Requests wurde automatisch Closes #{Issue Nummer} geschrieben.
- Per Rechtsklick auf die Issuenummer, können Sie ihr Issue in einem neuen Tab öffnen.
- Schauen Sie sich die entsprechenden Stellen an. Im Issue wurde genau dokumentiert, dass Sie es bearbeiten und einen Merge Request erstellt haben.
- Schließen Sie anschließend den Tab wieder.
3.4 Source Code bearbeiten
- Gehen Sie zurück zu ihrem Merge Request
- Öffnen Sie ihren Branch in der Web IDE von Gitlab
- Öffnen Sie die Datei
demoapp/app.py
- Verändern Sie die Version von
2.0.0
auf2.0.1
- Erstellen Sie mit ihrer Änderung einen Commit
Lösung (Klicken Sie auf den Pfeil, falls sie nicht weiterkommen)
- Auf dem Merge Request finden Sie oben rechts den Button Code
- Klicken Sie ihn und wählen Sie "Open in Web IDE"
- Es öffnet sich der in Gitlab integrierte Text-Editor
- Suchen Sie links im Dateibrowser den Ordner demoapp und darin die Datei app.py
- Verändern Sie die Versionsnummer in Zeile 13 von
2.0.0
zu2.0.1
. - Unterhalb des Dateibrowsers auf der linken Seite wird dadurch der Button "Create commit..." aktiviert
- Klicken Sie diesen Button und commiten Sie ihre Änderungen auf ihren Branch
fix/...
3.5 Pipeline-Logs ansehen
- Verlassen Sie die Gitlab Web IDE und gehen Sie zurück zu ihrem Merge Request
- Schauen Sie im Tab "Pipelines" nach der von ihrem Commit getriggerten Pipeline
- Schauen Sie sich das Job-Log an
Lösung (Klicken Sie auf den Pfeil, falls sie nicht weiterkommen)
- Verlassen Sie die Gitlab Web IDE indem Sie oben links auf den Projektnamen Gitlab Ci Demoapp klicken
- Öffnen Sie ihren Merge Request links über das Menü Merge requests
- Gehen Sie im Merge Request auf den Tab Pipelines (direkt unter dem Titel)
- Hier sehen Sie die zu diesem Merge Request gehörenden Pipelines
- Schauen Sie sich den Job im Detail mit Klick auf den grünen Kreis unter Stages an.
- Hier sehen Sie die Logausgabe des Jobs sowie weitere Informationen.
Aufgabe 4 - Pipeline manuell triggern
- Navigieren Sie links im Menü zu CI/CD ⇨ Pipelines
- Hier finden Sie alle Pipelineausführungen für ihr Projekt
- Triggern Sie eine manuelle Pipeline
- Schauen Sie sich in der Pipeline-Ansicht etwas um
Lösung (Klicken Sie auf den Pfeil, falls sie nicht weiterkommen)
- Gehen Sie auf die Pipeline-Übersicht im Menü über CI/CD ⇨ Pipelines
- Rechts oben befindet sich der Button Run pipeline. Klicken Sie diesen und bestätigen Sie die folgende Seite ebenfalls mit "Run pipeline"
Aufgabe 5 - Scheduled Pipeline anlegen
- Navigieren Sie links im Menü zu CI/CD ⇨ Schedules
- Hier können Sie geplante, sich wiederholende Pipelines anlegen
- Erstellen Sie einen Schedule