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: