In diesem informativen Video erhältst du eine kurze Einführung in GitLab CI. Es ist perfekt für Einsteiger(innen) und all jene, die ihr Verständnis von GitLab CI verbessern möchten.
Schnellstart-Leitfaden für kontinuierliche Integration mit GitLab
Willkommen beim Schnellstart-Leitfaden von GitLab CI, bei dem du erfährst, wie du ein Projekt in GitLab einrichtest und wie du eine einfache CI-Konfiguration im Code erstellst. Mit diesem Leitfaden kannst du schneller mit GitLab CI durchstarten.
Die folgenden Aufgaben werden in dieser Kurzanleitung beschrieben:
- - Ein neues Projekt erstellen.
- - Deine erste CI/CD-Konfiguration erstellen und die Pipeline ausführen.
- - Auf die Ergebnisse der Ausführung zugreifen und sie überprüfen.
- - Bedingungen einführen, die auf Regeln basieren, um festzulegen, wann Jobs ausgeführt werden sollen.
- - Praktische Pipeline-Vorlagen für eine nahtlose Integration vorteilhafter Konfigurationen nutzen.
Kontinuierliche Integration – bevor du loslegst
In einem Projekt werden unterschiedliche Komponenten wie deine Codebase, die CI-Konfiguration, die Planung, Analyse und die Teammitglieder verwaltet. In diesem Leitfaden erstellen wir ein Projekt von Grund auf neu, was bedeutet, dass es zunächst nur eine Readme-Datei enthält.
- Erstelle ein neues Projekt, indem du rechts in der oberen Menüleiste auf das Pluszeichen klickst und die Option Neues Projekt/Repository auswählst.
- Wähle Leeres Projekt erstellen aus. Gib unter `Projektname` my-project ein.
- Klicke auf Projekt erstellen.
- Herzlichen Glückwunsch! Du hast dein erstes Projekt erfolgreich erstellt.
Konfigurationsdatei erstellen
Pipeline-Phasen definieren
stages: - build - test - package
Pipeline-Jobs definieren
Einen Job zum Erstellen definieren
build-job: stage: build script: - echo "Hello " | tr -d "\n" > file1.txt - echo "world" > file2.txt - cat file1.txt file2.txt > compiled.txt artifacts: paths: - compiled.txt
Einen Job zum Testen definieren
test: stage: test script: cat compiled.txt | grep -q 'Hello world '
Einen Job zum Paketieren definieren
package: stage: package script: cat compiled.txt | gzip > packaged.gz artifacts: paths: - packaged.gz
Deine gesamte Pipeline sollte nun wie folgt aussehen:
stages: # List of stages for jobs, and their order of execution - build - test - package build-job: stage: build script: - echo "Hello " | tr -d "\n" > file1.txt - echo "world" > file2.txt - cat file1.txt file2.txt > compiled.txt artifacts: paths: - compiled.txt test: stage: test script: cat compiled.txt | grep -q 'Hello world' package: stage: package script: cat compiled.txt | gzip > packaged.gz artifacts: paths: - packaged.gz
Hier ist ein Link zur Konfigurationsdatei in unserem Beispielprojekt.
Herzlichen Glückwunsch! Du hast deine erste CI-Pipeline erstellt.
Um die kontinuierliche Integration (CI) in unserem Projekt zu aktivieren, müssen wir die Datei .gitlab-ci.yml ins Repository pushen. Sobald sich diese Datei im Root-Verzeichnis des Repositorys befindet, initiiert jeder Commit in dieses Projekt automatisch eine CI-Pipeline. Die erste Pipeline beginnt unmittelbar nach dem Push dieser Datei auf den Server.
- Klicke links im Datei-Explorer auf das Symbol „Zusammenführen“.
- Gib eine Commit-Nachricht wie etwa „CI-Konfiguration hinzugefügt“ ein.
- Klicke auf Committen & pushen.
- Wenn die Frage „In einen neuen Branch pushen?“ gestellt wird, wähle „Nein, aktuellen Haupt-Branch verwenden“ aus.
- Klicke unten links auf die Schaltfläche Zum Projekt, um zu deinem Projekt zurückzukehren.
Herzlichen Glückwunsch! Dein Projekt wurde jetzt erfolgreich konfiguriert, sodass automatisch eine CI-Pipeline für jeden Code-Commit initiiert wird.
Während die Pipeline ausgeführt wird, kannst du im Tab CI/CD ihren Status überwachen. Mit dieser Funktion kannst du einfach den Fortschritt deiner Jobs verfolgen, darunter den Ausführungsstatus (beispielsweise, ob der Job begonnen wurde, erfolgreich war, fehlgeschlagen ist usw.) und Ausgaben deiner Job-Skripte.
- Gehe zum GitLab-Projekt und suche das Menü auf der linken Seite.
- Klicke im Menü auf CI/CD und dann auf Pipelines.
- Suche auf der Seite Pipelines in der Spalte Status die Schaltfläche „Pipeline“. Klicke darauf, um das Pipeline-Schema zu öffnen.
- Jetzt kannst du die Jobs und ihren jeweiligen Status im Pipeline-Schema beobachten.
- Wenn du einen bestimmten Job ansehen möchtest, klicke darauf, um die Job-Konsole zu öffnen. In dieser Konsole werden alle Schritte angezeigt, die in der Runner-Maschine ausgeführt werden.
- Öffne die Konsole des Paketierungs-Jobs, um die Schritte anzuzeigen, die vom Runner verarbeitet wurden.
- Der Job zum Paketieren erzeugt ein Artefakt, das du herunterladen kannst, indem du rechts auf die Schaltfläche Herunterladen klickst.
- Wenn du diese Schritte verfolgst, kannst du den Pipeline-Status effektiv nachverfolgen, Jobdetails anzeigen und relevante Artefakte oder Pakete abrufen, die beim Ausführen der Pipeline erzeugt wurden.
Herzlichen Glückwunsch! Du hast deine erste Pipeline erfolgreich ausgeführt. Die Pipeline ist erfolgreich! Du hast dir jetzt die Ergebnisse angesehen und das Jobartefakt heruntergeladen.
Wir werden nun den erwarteten Wert im Testjob ändern, damit der Testjob sowie die gesamte Pipeline fehlschlagen.
- Bearbeite den Job zum Testen, indem du die Phrase „Hello World“ in „hello world“ änderst (in Kleinbuchstaben).
- Committe die Codeänderung und zeige die Pipeline (wie in Schritt 4 beschrieben) an.
- Bei der Inspektion der Pipeline wirst du feststellen, dass der Testjob fehlgeschlagen ist. Zudem wurde der darauf folgende Job zum Paketieren nicht ausgeführt und die Pipeline selbst ist wie erwartet fehlgeschlagen.
In Schritt 5 haben wir festgestellt, dass die gesamte Pipeline fehlgeschlagen ist. Du kannst jetzt eine Logik in deine Pipeline einführen, die festlegt, wann ein fehlgeschlagener Job dazu führt, dass die gesamte Pipeline fehlschlägt. Befolge dazu diese Schritte:
- Beurteile die Bedingungen, unter denen ein fehlgeschlagener Job zu einem Pipeline-Fehler führen soll. Du kannst beispielsweise einen Pipeline-Fehler erzwingen, wenn ein Fehler im Haupt- oder Standard-Branch fehlschlägt, während fehlgeschlagene Jobs in anderen Branches dazu führen sollen, dass die Pipeline trotzdem ausgeführt wird.
- Definiere dazu Regeln, die das Fehlerverhalten regulieren. Du kannst Variablen wie $CI_COMMIT_BRANCH nutzen, um den aktuellen Branch zu überprüfen und darauf basierend Entscheidungen zu treffen.
- Lege die entsprechenden Bedingungen fest und gib an, ob der Job als allow_failure: false oder allow_failure: true gekennzeichnet werden soll.
Anleitung
- Füge deinem Testjob Regeln/if-Bedingungen hinzu.
- Verwende je nach Branch das Keyword allow_failure mit dem Wert true oder false.
test: stage: test script: cat compiled.txt | grep -q 'Hello world' rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH allow_failure: false - if: $CI_COMMIT_BRANCH allow_failure: true
Um die Einrichtung der Pipeline-Konfiguration zu optimieren, kannst du die integrierten, von GitLab bereitgestellten Pipeline-Vorlagen nutzen. Diese Vorlagen enthalten vordefinierte Konfigurationen für häufige Anwendungsfälle wie Sicherheitsscans, AWS-Bereitstellung usw.
Befolge diese Schritte, um die integrierten Pipeline-Vorlagen zu nutzen:
- Entdecke die verfügbaren Pipeline-Vorlagen, die GitLab für verschiedene Szenarien wie das Erstellen, Testen, Bereitstellen und mehr anbietet. Diese Vorlagen findest du hier.
- Wähle eine Vorlage aus, die deinen Anforderungen entspricht.
- Integriere die Vorlage in deine Pipeline-Konfiguration, indem du dich in der Datei .gitlab-ci.yml darauf beziehst. In der Regel importierst du dazu die Vorlage mit dem Keyword include und gibst den Pfad oder die URL der Vorlagendatei an.
In diesem Leitfaden fügen einen Scan für die Codequalität zu unserer Konfiguration hinzu, indem wie die Vorlage für die Codequalität verwenden.
- Füge die Vorlage für die Codequalität in deine Datei .gitlab-ci.yml ein, indem du den folgenden Code unter den Block „stages“ hinzufügst.
include: - template: Jobs/Code-Quality.gitlab-ci.yml #
Du siehst, dass nun ein Job für die Codequalität zu deiner Pipeline hinzugefügt wurde. Der Code Quality Scanner analysiert Codeänderungen, die in dieses Repository committed wurden, genauestens und stellt wertvolles Feedback bereit. Dabei werden Probleme bei der Codequalität hervorgehoben, die verbessert werden müssen. Dieser wertvolle Einblick ermöglicht es dir, die Gesamtqualität deiner Codebase zu verbessern und ihre Leistung zu optimieren.
Das war’s! Mit diesen Schritten solltest du in der Lage sein, mit GitLab CI durchzustarten und die Erstellungs- und Testprozesse deines Projekts zu automatisieren.
Nächste Schritte
Bist du bereit?
Erfahre mehr darüber, was dein Team mit der umfassendsten KI-gestützten DevSecOps-Plattform erreichen kann.