Jenkins Pipeline-Tutorial: So erstellen JenkinsDatei (Beispiel)

⚡ Intelligente Zusammenfassung

Jenkins Pipeline verknüpft Build-, Test- und Deployment-Jobs zu einer geordneten Sequenz, die als Code ausgeführt wird. JenkinsEine neben dem Projekt gespeicherte Datei macht aus dieser Sequenz eine überprüfbare, versionierte Definition der Auslieferung.

  • 🔘 Pipeline: Eine Gruppe von miteinander verknüpften Ereignissen, wobei jedes Ereignis vom vorhergehenden abhängt.
  • ☑️ JenkinsDatei: Eine Textdatei in einer domänenspezifischen Sprache, die jeden Pipeline-Schritt enthält.
  • ✅ Zwei Syntaxvarianten: Deklarative Programmiersprachen bieten eine feste Hierarchie; skriptbasierte Programmiersprachen tauschen Struktur gegen Groovy steuern.
  • 🧪 Vier Begriffe: Pipeline, Knoten, Stufe und Schritt benennen den Ablauf, die Maschine, die Phase und die Aufgabe.
  • ️ Einrichtungspfad: Installieren Sie das Build-Pipeline-Plugin, fügen Sie eine Pipeline-Ansicht hinzu, verketten Sie die Jobs und führen Sie sie aus.
  • 📌 Praktiken Methoden Ausübungen: Materialarbeit sollte in einem Knotenblock, Nicht-Setup-Arbeit in einer Stufe und Eingaben in Timeouts eingeschlossen werden.

Jenkins Eine Pipeline ist als Code in einem JenkinsReichen Sie das

Was ist Jenkins Pipeline?

Jenkins Pipeline ist eine Kombination aus Plugins, die die Integration und Implementierung unterstützt. kontinuierliche LieferpipelinesEs handelt sich um einen erweiterbaren Automatisierungsserver zur Erstellung einfacher und komplexer Bereitstellungspipelines als Code mithilfe der Pipeline-DSL. Eine Pipeline ist eine Gruppe von Ereignissen, die in einer Sequenz miteinander verknüpft sind.

Was sind Continuous-Delivery-Pipelines? Wie es funktioniert?

Kurz und Jenkins In einer Pipeline besteht zwischen jedem Job und jedem Ereignis eine Abhängigkeit von mindestens einem oder mehreren anderen Ereignissen, wie das untenstehende Diagramm zeigt.

Die Continuous-Delivery-Pipeline befindet sich in den Phasen Build, Deploy, Test und Release. Jenkins
Arbeiten von Jenkins Kontinuierliche Bereitstellungspipelines

Das obige Bild stellt eine Continuous-Delivery-Pipeline dar. JenkinsEs besteht aus Zuständen namens Build, Deploy, Test und Release. Jeder Zustand hat seine eigenen Ereignisse, die nacheinander ausgeführt werden.

Eine Continuous-Delivery-Pipeline bildet diesen Prozess automatisch ab und transportiert Software von der Versionskontrolle bis zur Veröffentlichung durch eine wiederholbare Abfolge von Builds. testing und Bereitstellungsphasen.

Non-Profit JenkinsDatei?

Jenkins Pipelines können in einer Textdatei definiert werden namens JenkinsDatei. Sie drückt die Pipeline als Code in einer domänenspezifischen Sprache (DSL) aus und enthält jeden Schritt, der zum Ausführen der Pipeline erforderlich ist.

Die Vorteile der Verwendung JenkinsDie Dateien sind:

  • Eins JenkinsFile kann Pipelines für jeden Branch erstellen und Pull Requests ausführen.
  • Sie können Ihre Jenkins Code in der Pipeline
  • Sie können Ihre prüfen Jenkins Pipeline
  • Dies ist die einzige Quelle für Ihre Pipeline und kann von mehreren Benutzern geändert werden.

Eine Pipeline kann definiert werden in der Jenkins Web-UI oder in einer JenkinsDie Datei wurde in die Quellcodeverwaltung eingecheckt. Eine minimale deklarative Datei hat eine feste Struktur – einen Pipeline-Block, einen Agenten und Phasen, die jeweils eine Phase pro Phase enthalten.

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'Building'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying'
            }
        }
    }
}

Durch das Speichern im Stammverzeichnis des Repositorys wird die Pipeline mit dem Code versioniert.

Deklarative versus skriptbasierte Pipeline-Syntax

Es gibt zwei Arten von Jenkins Pipeline-Syntax, die zum Definieren Ihrer JenkinsDatei.

  1. Deklarativ
  2. Skripted

Deklarativ

Die deklarative Pipeline-Syntax ist der einfachere Weg. Sie folgt einer vordefinierten Hierarchie und steuert dennoch jeden Aspekt der Pipeline-Ausführung auf unkomplizierte Weise.

Skripted

Skripted Jenkins Die Pipeline läuft auf dem Jenkins Der Controller verwendet einen ressourcenschonenden Executor, der die Pipeline in atomare Befehle übersetzt. Die beiden Ansätze unterscheiden sich deutlich in ihrer Implementierung; wählen Sie daher einen pro Pipeline. JenkinsDatei.

⚠️ Hinweis: Jenkins nennt es jetzt führen zu die Controller.

Warum verwenden Jenkins Pipeline?

Jenkins ist eine offene Continuous-Integration-Server das automatisiert SoftwareentwicklungsprozesseSie können mehrere erstellen. Automatisierungsjobs Nehmen Sie Ihre Anwendungsfälle und führen Sie sie als eine Pipeline aus.

Hier sind die Gründe, warum Sie es verwenden sollten Jenkins Pipeline:

  • Die Pipeline ist als Code implementiert, sodass mehrere Benutzer den Prozess bearbeiten und ausführen können.
  • Pipelines sind robust: Sollte der Server unerwartet neu starten, wird die Pipeline automatisch fortgesetzt.
  • Sie können eine Pipeline pausieren und so lange anhalten, bis ein Benutzer eine Eingabe macht.
  • Pipelines unterstützen große Projekte: Sie ermöglichen das Ausführen mehrerer Jobs und sogar die Verwendung von Pipelines in einer Schleife.

Jenkins Pipeline Concepts

Vier Begriffe kehren in jedem JenkinsDatei:

BedingungenBeschreibung
PipelineEine als Code geschriebene Anweisungsfolge, die den gesamten Build-Prozess für Continuous Delivery abdeckt. Mit einer Pipeline können Sie die Anwendung erstellen, testen und ausliefern.
KnotenDie Maschine, auf der Jenkins Ein Lauf wird als Knoten bezeichnet. Ein Knotenblock wird hauptsächlich in der skriptbasierten Pipeline-Syntax verwendet.
PraktikumEin Phasenblock enthält eine Reihe von Schritten. Die Prozesse „Erstellen“, „Testen“ und „Bereitstellen“ werden jeweils in einer Phase zusammengeführt, die auch in der Pipeline-Ansicht visualisiert wird.
SchrittEine einzelne Aufgabe, die einen bestimmten Prozess zu einem festgelegten Zeitpunkt ausführt. Eine Pipeline ist eine Abfolge von Schritten.

Installieren Sie das Build-Pipeline-Plugin in Jenkins

Das Build-Pipeline-Plugin erstellt eine Pipeline-Ansicht der eingehenden und ausgehenden Jobs und fügt Auslöser für manuelle Eingriffe hinzu.

Installieren Sie es wie folgt:

Schritt 1) Die Einstellungen für das Plugin finden Sie unter Verwalten Jenkins > Plugins verwalten, unten gezeigt.

⚠️ Versionshinweis: Strom Jenkins Veröffentlichungen kennzeichnen diesen Bildschirm Verwalten Jenkins → PluginsDie Tabs verhalten sich wie hier beschrieben.

Seite „Plugins verwalten“ in Jenkins wo sich die Einstellungen des Build-Pipeline-Plugins befinden

Wenn Sie das Plugin bereits installiert haben, wird es unter der Registerkarte „Installiert“ angezeigt.

Installierte Registerkarte des Jenkins Plugin-Manager listet das Build-Pipeline-Plugin auf

Schritt 2) Falls das Plugin noch nicht installiert ist, wird es unter dem Reiter „Verfügbar“ angezeigt.

Mit installiertem Plugin:

So erstellen Sie Jenkins Pipeline

Sobald Sie bei Ihrem angemeldet sind Jenkins Dashboard:

Schritt 1) Klicken Sie auf die Schaltfläche „+“ auf der linken Seite Ihres Jenkins Dashboard zum Erstellen einer Pipeline.

Plus-Taste auf dem Jenkins Das Dashboard dient zum Hinzufügen einer neuen Ansicht

Schritt 2) Füllen Sie den neuen Ansichtsdialog aus:

  1. Geben Sie der Pipeline-Ansicht einen Namen. Wir nennen sie „Guru99 Pipeline“ für diese Demo.
  2. Wählen Sie unter Optionen die Ansicht „Pipeline erstellen“ aus.
  3. Klicken Sie auf OK, wie unten dargestellt.

Neuer Ansichtsdialog mit eingegebenem Pipeline-Ansichtsnamen und der Option "Pipeline-Ansicht erstellen" ausgewählt

Schritt 3) Auf der nächsten Seite werden weitere Konfigurationsdetails abgefragt. Übernehmen Sie die Standardeinstellungen und wählen Sie unbedingt den ersten Auftrag unter den Einstellungen aus.

Klicken Sie auf Anwenden und dann auf OK.

Konfigurationsseite für die Build-Pipeline-Ansicht mit Standardeinstellungen und ausgewähltem ersten Job

Anschließend wird die Beispiel-Pipeline-Ansicht Ihres Elements angezeigt:

Musteranfrage Jenkins Build-Pipeline-Ansicht erstellt für die Guru99 Pipeline-Artikel

Ausführen eines Pipeline-Builds

Schritt 1) Verketten Sie zuerst Ihre Jobs: Öffnen Sie Ihren ersten Job und klicken Sie auf Konfigurieren.

Konfigurieren Sie die Verbindung auf dem ersten Jenkins Job wurde verwendet, um eine Verkettung von Jobs zu starten

Schritt 2) Aktivieren Sie nun unter Build-Trigger die Option "Erstellen, nachdem andere Projekte erstellt wurden".

Abschnitt „Build-Trigger“ mit der Option „Erstellen, nachdem andere Projekte erstellt wurden“ aktiviert

Es gibt jetzt eine Kette für all Ihre Jobs.

Schritt 3) Installieren Sie das Build Pipeline View-Plugin, falls Sie es noch nicht installiert haben.

Schritt 4) Auf dem Jenkins Dashboard, erstellen Sie eine Ansicht mit der Schaltfläche „+“, wählen Sie die Option Build Pipeline View aus und klicken Sie auf OK.

Neuer Ansichtsdialog mit ausgewählter Option „Build-Pipeline-Ansicht“

Schritt 5) Suchen Sie unter „Pipeline-Ansichtskonfiguration“ nach „Pipeline-Ablauf“.

Wählen Sie unter „Pipeline-Ablauf“ den ersten auszuführenden Job aus – den Job, der in den Schritten 1 und 2 mit den anderen Jobs verkettet ist.

Pipeline-Flow-Einstellungen mit Guru99 Projekt 1 wurde als erste Aufgabe ausgewählt

GuruHier wird Projekt 1 als erster Job ausgewählt, sodass die verketteten Jobs nacheinander ausgeführt werden.

Während die Pipeline in Betrieb ist, zeigen rote und grüne Symbole ihren Zustand an: Rot bedeutet Ausfall, Grün bedeutet Erfolg.

In diesem Beispiel ist der Button grün, die Pipeline war also erfolgreich.

Grüner Statusbutton zeigt erfolgreichen Status an Jenkins Pipeline-Ausführung

Laufen Jenkins Pipeline

Klicken Sie auf „Ausführen“, um den Vorgang zu starten. Jenkins Pipeline. Sie wird in etwa so aussehen:

Schaltfläche "Ausführen" auf dem Jenkins Build-Pipeline-Ansicht

Das obige Beispiel erstellt ein einfaches „helloworld.java“-Programm. Reale Projekte verketten weitaus komplexere Pipelines, wie die detailliertere Ansicht unten zeigt.

Fertig gestellt Jenkins Die Build-Pipeline-Ansicht zeigt alle verketteten Jobs nacheinander an.

⚠️ Versionshinweis: Das Build-Pipeline-View-Plugin ist die herkömmliche Methode zur Visualisierung verketteter Freestyle-Jobs; die aktuelle Vorgehensweise definiert denselben Ablauf in einem JenkinsDatei. Blau Ocean wird nicht mehr verbessert.

Best Practices für die Anwendung Jenkins Pipeline

Sieben Gewohnheiten sorgen für eine wartungsfreundliche Pipeline:

  • Verwenden Sie das Original Jenkins Pipeline
  • Entwickeln Sie Ihre Pipeline als Code
  • Alle Nicht-Setup-Arbeiten in Ihrer Pipeline sollten innerhalb eines Phasenblocks erfolgen.
  • Alle wesentlichen Arbeiten in einer Pipeline müssen innerhalb eines Knotenblocks ausgeführt werden.
  • Verwenden Sie keine Eingabe innerhalb eines Knotenblocks.
  • Legen Sie niemals Umgebungsvariablen mit der globalen Variablen env fest
  • Wickeln Sie Ihre Eingaben in eine Zeitüberschreitung ein

Häufig gestellte Fragen

Es durchsucht ein Repository und findet jeden Zweig, der einen JenkinsFür jede Datei wird ein Job erstellt. Das Verzweigungsverhalten wird durch die Variable BRANCH_NAME in dieser einen Datei bestimmt.

Bewahren Sie sie in der Jenkins Anmeldeinformationen werden mithilfe der Hilfsfunktion `credentials()` in einem Umgebungsblock gespeichert und gelesen. Der Wert wird zur Laufzeit eingefügt und im Protokoll maskiert, sodass kein Passwort in der Datei gespeichert wird.

Es wird nach Abschluss der einzelnen Phasen ausgeführt, unabhängig vom Ergebnis. Zustände wie „immer“, „Erfolg“, „Fehler“ und „instabil“ ermöglichen es, dass eine einzige Datei Berichte veröffentlicht, Artefakte archiviert und das Team benachrichtigt, ohne dass es zu Wiederholungen kommt.

Ja. Ein paralleler Block innerhalb einer Stage führt seine Zweige gleichzeitig aus, was für auf verschiedene Browser verteilte Suites geeignet ist. Jeder Zweig benötigt einen Agenten, sodass die Laufzeit nur dann sinkt, wenn Executors frei sind.

Senden Sie es an den Endpunkt des deklarativen Linters oder öffnen Sie Replay einer früheren Ausführung, bearbeiten Sie das Skript und führen Sie es aus, ohne das Repository zu verändern. Beide Methoden erkennen Syntaxfehler frühzeitig.

Ein KI-Assistent kann lange Konsolenprotokolle lesen und wiederholte Stack-Anhänge gruppieren. tracund geben Sie die Phase an, in der der Fehler aufgetreten ist. Es kennzeichnet auch sporadische Tests. Überprüfen Sie jeden Vorschlag anhand des Rohprotokolls.

Ja. Copilot Erstellt ein deklaratives Grundgerüst aus einem Kommentar, der die Phasen benennt, und führt Schritte wie Checkout und Shell-Befehle aus. RevÜberprüfen Sie Agentenbezeichnungen, Anmeldeinformationen und Timeouts, deren Vorschläge oft falsch liegen.

Sobald derselbe Block in drei oder mehr Blöcken vorkommt JenkinsDateien. Eine gemeinsam genutzte Bibliothek speichert diese Logik in einem versionierten Repository, sodass eine Korrektur jedes Projekt erreicht und jede Datei nur ihre eigenen Stufen verwaltet.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: