Um eine CICD-Pipeline (Continuous Integration and Continuous Delivery) in Code Stream zu erstellen, können Sie manuell Phasen und Aufgaben hinzufügen. Um Ihren nativen CICD-Build zu planen, erfassen Sie die benötigten Informationen, erstellen dann eine Pipeline und fügen manuell Phasen und Aufgaben hinzu.
Sie müssen sowohl die Phase der kontinuierlichen Integration (CI) als auch die Phase der kontinuierlichen Bereitstellung (CD) Ihrer Pipeline planen. Nachdem Sie Ihre Pipeline erstellt und ausgeführt haben, können Sie Trends über die Pipeline-Ausführungen hinweg überwachen.
Wenn eine Pipeline ein Image aus dem Docker-Hub enthält, müssen Sie vor der Pipeline-Ausführung sicherstellen, dass cURL oder wget in das Image eingebettet wurde. Wenn die Pipeline ausgeführt wird, lädt Code Stream eine binäre Datei herunter, die cURL oder wget zum Ausführen von Befehlen verwendet.
Der Arbeitsbereich der Code Stream-Pipeline unterstützt Docker und Kubernetes für CI- und benutzerdefinierte Aufgaben.
Informationen zum Konfigurieren des Arbeitsbereichs finden Sie unter Konfigurieren des Pipeline-Arbeitsbereichs.
Planen der externen und internen Anforderungen
Für die Planung der CI- und CD-Phase der Pipeline geben die folgenden Anforderungen an, welche Aufgaben vor dem Erstellen der Pipeline durchgeführt werden müssen.
In diesem Beispiel wird ein Docker-Arbeitsbereich verwendet.
Um eine Pipeline aus diesem Beispielplan zu erstellen, verwenden Sie einen Docker-Host, ein Git-Repository, Maven und mehrere Tools für die Nachbearbeitung von Builds.
Endpoints und Repositorys, die Sie benötigen:
- Ein Git-Quellcode-Repository, in das die Entwickler ihren Code einchecken. Code Stream übergibt den aktuellen Code an die Pipeline, wenn Entwickler Änderungen vornehmen.
- Ein Docker-Endpoint für den Docker-Build-Host, der die Build-Befehle in einem Container ausführt.
- Ein Builder-Image, das den Container erstellt, auf dem die Tests für die kontinuierliche Integration ausgeführt werden.
- Ein Image-Registrierungs-Endpoint, damit der Docker-Build-Host das Builder-Image daraus abrufen kann.
Sie benötigen Zugriff auf ein Projekt. Ein Projekt, in dem Ihre gesamte Arbeit, einschließlich Ihrer Pipeline, Endpoints und Dashboards, gruppiert wird. Vergewissern Sie sich, dass Sie Mitglied eines Projekts in Code Stream sind. Falls nicht, bitten Sie einen Code Stream-Administrator, Sie als Mitglied eines Projekts hinzuzufügen. Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Hinzufügen eines Projekts in Code Stream.
Sie brauchen einen Git-Webhook, der es Code Stream ermöglicht, den Git-Auslöser zu verwenden, der Ihre Pipeline auslöst, wenn Entwickler Codeänderungen vornehmen. Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Verwenden des Git-Auslösers in Code Stream zum Ausführen einer Pipeline.
Vorgehensweise zum Erstellen der CICD-Pipeline und Konfigurieren des Arbeitsbereichs
Sie müssen die Pipeline erstellen und dann den Arbeitsbereich, die Pipeline-Eingabeparameter und die Aufgaben konfigurieren.
Um die Pipeline zu erstellen, klicken Sie auf
.
Geben Sie auf der Registerkarte „Arbeitsbereich“ die Informationen zur kontinuierlichen Integration ein:
- Schließen Sie Ihren Docker-Build-Host ein.
- Geben Sie die URL für Ihr Builder-Image ein.
- Wählen Sie den Endpoint für die Image-Registrierung aus, damit die Pipeline das Image daraus abrufen kann. Der Container führt die CI-Aufgaben aus und stellt Ihr Image bereit. Wenn bei der Registrierung Anmeldedaten benötigt werden, müssen Sie zuerst den Image-Registrierungs-Endpoint erstellen und diesen dann an dieser Stelle auswählen, damit der Host das Image aus der Registrierung abrufen kann.
- Fügen Sie die Artefakte hinzu, die zwischengespeichert werden müssen. Damit ein Build erfolgreich ausgeführt werden kann, werden Artefakte wie zum Beispiel Verzeichnisse als Abhängigkeiten heruntergeladen. Der Cache ist der Speicherort, an dem sich diese Artefakte befinden. Abhängige Artefakte können zum Beispiel das Verzeichnis
.m2
für Maven und das Verzeichnisnode_modules
für Node.js enthalten. Diese Verzeichnisse werden zwischen den Pipeline-Ausführungen zwischengespeichert, um während der Builds Zeit zu sparen.
Konfigurieren Sie auf der Registerkarte „Eingabe“ die Pipeline-Eingabeparameter.
- Wenn in Ihrer Pipeline Eingabeparameter aus einem Git-, Gerrit- oder Docker-Auslöserereignis verwendet werden, wählen Sie den Auslösertyp für Auto-Injektionsparameter aus. Zu den Ereignissen kann die Änderung des Betreffs für Gerrit oder Git oder des Namens des Ereignisbesitzers für Docker zählen. Wenn in Ihrer Pipeline keine vom Ereignis übergebenen Eingabeparameter verwendet werden, behalten Sie für „Parameter automatisch einfügen“ Keine bei.
- Um einen Wert und eine Beschreibung auf den Pipeline-Eingabeparameter anzuwenden, klicken Sie auf die drei vertikalen Punkte und dann auf Bearbeiten. Der eingegebene Wert wird als Eingabe für Aufgaben, Phasen oder Benachrichtigungen verwendet.
- Um einen Pipeline-Eingabeparameter hinzuzufügen, klicken Sie auf Hinzufügen. Sie können beispielsweise approvers hinzufügen, um für jede Ausführung einen Standardwert anzuzeigen, der jedoch zur Laufzeit mit einer anderen genehmigenden Person überschrieben werden kann.
- Um einen eingefügten Parameter hinzuzufügen oder zu entfernen, klicken Sie auf Eingefügten Parameter hinzufügen/entfernen. Sie können beispielsweise einen nicht verwendeten Parameter entfernen, damit die Ergebnisseite übersichtlicher ist und nur die verwendeten Eingabeparameter angezeigt werden.
Konfigurieren Sie die Pipeline, um Ihren Code zu testen:
- Fügen Sie eine CI-Aufgabe hinzu und testen Sie sie.
- Schließen Sie die Schritte zum Ausführen von
mvn test
in Ihrem Code ein. - Um nach der Ausführung der Aufgabe Probleme zu identifizieren, führen Sie Build-Tools zur Nachbearbeitung aus, z. B. JUnit und JaCoCo, FindBugs und Checkstyle.
Konfigurieren Sie die Pipeline, um Ihren Code zu erstellen:
- Fügen Sie eine CI-Aufgabe hinzu und testen Sie sie.
- Schließen Sie die Schritte ein, mit denen
mvn clean install
auf Ihrem Code ausgeführt wird. - Schließen Sie den Speicherort und den JAR-Dateinamen ein, damit er Ihr Artefakt beibehält.
Konfigurieren Sie die Pipeline, um Ihr Image auf Ihrem Docker-Host zu veröffentlichen:
- Fügen Sie eine CI-Aufgabe hinzu und testen Sie sie.
- Fügen Sie Schritte hinzu, die Ihr Image überschreiben, exportieren, erstellen und weitergeben.
- Fügen Sie den Exportschlüssel von
IMAGE
für die nächste zu verwendende Aufgabe hinzu.
Nachdem Sie den Arbeitsbereich, die Eingabeparameter, die Testaufgaben und die Build-Aufgaben konfiguriert haben, speichern Sie die Pipeline.
Vorgehensweise zum Aktivieren und Ausführen Ihrer Pipeline
Nachdem Sie Ihre Pipeline mit Phasen und Aufgaben konfiguriert haben, können Sie die Pipeline speichern und aktivieren.
Warten Sie, bis die Pipeline ausgeführt und abgeschlossen ist, und vergewissern Sie sich dann, dass der Vorgang erfolgreich war. Wenn sie fehlgeschlagen ist, korrigieren Sie alle Fehler und führen Sie sie erneut aus.
Nach erfolgreicher Ausführung der Pipeline können Sie folgende Punkte bestätigen:
- Untersuchen Sie die Pipeline-Ausführung und zeigen Sie die Ergebnisse der Aufgabenschritte an.
- Suchen Sie im Arbeitsbereich der Pipeline-Ausführung nach den Details zu Ihrem Container und nach dem geklonten Git-Repository.
- Prüfen Sie im Arbeitsbereich die Ergebnisse Ihrer Tools zur Nachbearbeitung und suchen Sie nach Fehlern, Codeabdeckung, Bugs und Formatierungsproblemen.
- Bestätigen Sie, dass Ihr Artefakt beibehalten wurde. Stellen Sie auch sicher, dass das Image mit dem IMAGE-Namen und -Wert exportiert wurde.
- Wechseln Sie zu Ihrem Docker-Repository und stellen Sie sicher, dass die Pipeline Ihren Container veröffentlicht hat.
Ein detailliertes Beispiel, das zeigt, wie der Code von Code Stream kontinuierlich integriert wird, finden Sie unter Vorgehensweise zur kontinuierlichen Integration von Code aus einem GitHub- oder GitLab-Repository in eine Pipeline in Code Stream.