So testen Sie Jenkinsfile lokal

So testen Sie Jenkinsfile lokal

Wenn Sie anfangen, Jenkin -Pipelines mit deklarativen Jenkinsfile zu erstellen, ist es mühelos, Fehler in Ihrer Syntax -Definition zu machen.

Es ist daher eine gute Praxis, Ihre Jenkinsfiles zu überprüfen und zu überprüfen, bevor Sie sie an Ihre Repositorys verpflichten. Dies stellt sicher, dass Sie nicht viele fehlgeschlagene Builds in Ihrem Jenkins -Server haben.

In diesem Tutorial werden verschiedene Methoden und Techniken angezeigt, mit denen Sie Ihre Jenkinsfile abgeben und überprüfen können, bevor Sie sie auf dem Server ausführen.

Die Jenkinsfile

Die JenkinsFile ist ein leistungsstarkes Tool, mit dem Sie die Anweisungen für Ihre Builds in einer einfachen und leicht verständlichen Syntax angeben können. Es gibt zwei Hauptmethoden, um eine JenkinsFile zu erstellen:

    1. Unter Verwendung einer deklarativen Syntax
    2. Verwenden von groovigen Skripten

Dieses Tutorial konzentriert sich auf einen Artikel in deklarativer Syntax, da es viel einfacher zu verstehen und zu verwenden ist.

Das Folgende zeigt die Syntax einer einfachen deklarativen Jenkinsfile.

Def msg = "Dies ist ein benutzerdefinierter Text"
Pipeline
Agent jeder
Stufen
Stage ('Hallo')
Schritte
Skript
msg = "Jetzt ist die Zeichenfolge anders!!"

echo "$ msg"




Wir werden nicht die Struktur der Datei oder den einzelnen Block in der obigen Datei überschreiten. Stattdessen können Sie unser Jenkins -Tutorial überprüfen, um die verschiedenen Jenkins -Grundlagen wie die variable Erklärung, die Jenkins -Stufen, die Jenkins -Stufen und mehr zu erkunden.

Was ist Linie und warum ist es wichtig??

Die Linie bezieht sich auf den Prozess der Überprüfung von Quellcode auf potenzielle Probleme oder Fehler. In den meisten Fällen führen wir normalerweise eine Code -Linie über ein dediziertes Tool aus, das als Linter bezeichnet wird.

Ein Codestinter nimmt einen Eingangsquellcode an, analysiert ihn und stellt sicher, dass in der Datei keine potenziellen Fehler vorhanden sind. Es wird auch Syntax- und Formatierungsprobleme validieren, die in einer bestimmten Sprache definiert sind.

Einige häufige Probleme, die Linter erkennen können, umfassen Syntaxfehler, Formatierungsprobleme und potenzielle logische Probleme.

Hier liegt das Problem, wenn es um JenkinsFiles geht. Sobald Sie eine JenkinsFile bearbeiten, müssen Sie die Änderungen begehen und die Änderungen am Repository weitergeben.

Jenkins ist jedoch so konfiguriert, dass jedes Mal, wenn sich eine Änderung der JenkinsFile ändert. Wenn Sie also einen Fehler in der Datei und in der Datei und dem Verhalten ohne Tests machen, wird Jenkins versuchen, das Projekt zu erstellen und aufgrund der Fehler in der Pipeline -Datei zu fehlschlagen.

Sie werden oft auf solche Fehler stoßen, die zu langsamen gleichzeitigen Builds oder sogar zu einer Fülle von Git -Commits führen.

Um solche Fehler zu verhindern, ist es gut, einen Linter zu verwenden, um zu überprüfen, ob alles funktioniert, bevor Sie sich verpflichten.

Wie man eine Jenkinsfile findet

Lassen Sie uns nun diskutieren, wie wir die Jenkinfile vor Ort vor dem Engagement ausräumen können.

Methode 1 - Verwenden der jenkins deklarativen Linter

Die erste Method.

Melden Sie sich in Ihr Jenkins Dashboard an - Verwalten Sie Jenkins - Jenkins CLI und laden Sie das Jenkins CLI -Dienstprogramm an.

Sie finden den Link zum Herunterladen der Jenkins CLI und zum Ausführen des Befehls im ersten Abschnitt.


Navigieren Sie nach dem Herunterladen zum Ort des Jenkins-Cli.JAR -Datei und führen Sie den oben angegebenen Befehl aus.

In dem Befehl sollte mögliche Befehle auflisten, die Sie auf dem Server wie gezeigt ausführen können:

Einrichten eines Beispiels JenkinsFile

Der nächste Schritt besteht darin, eine Probe JenkinsFile einzurichten, die wir für die Gültigkeit ausfindig machen und testen müssen. Für Demonstrationszwecke werden wir ein einfaches Hello World -Skript verwenden, wie unten angegeben:

Def msg = "Dies ist ein benutzerdefinierter Text"
Pipeline
Agent jeder
Stufen
Stage ('Hallo')
Schritte
Skript
msg = "Jetzt ist die Zeichenfolge anders!!"

echo $ msg




Sie können die JenkinsFile auf einem beliebigen Speicherort in Ihrem Dateisystem speichern.

Stinn eines Jenkinsfils aus der Befehlszeile

Um eine Jenkins -Datei aus der Befehlszeile auszurichten, können wir den Befehl verwenden:

$ Java -Jar Jenkins -Cli.Jar -S Jenkins_url -Websocket -Deklarativlinter < Jenkinsfile


Wo der Jenkins_url die Adresse an Ihren Jenkins -Controller ist.

Wenn Ihr Jenkins -Server eine Authentifizierung benötigt, verwenden Sie die Option -Auth, gefolgt vom Benutzernamen und dem Passwort als Benutzername: Passwort.

Eine Beispielsyntax ist unten gezeigt:

$ Java -Jar Jenkins -Cli.Jar -S Jenkins_url -Auth Benutzername: Passwort -Websocket -Deklarativlinter < Jenkinsfile


Lassen Sie uns die Ausgabe des Linters demonstrieren, wenn wir die oben genannte JenkinsFile übergeben.

$ Java -Jar Jenkins -Cli.jar -s http: // localhost: 9001/-Auth root: password -websocket deklarativ -linter < .\Jenkinsfile


Sobald wir den obigen Befehl ausführen. Da unsere Datei Fehler aufweist, wird uns der Linter mitteilen, warum und potenzielle Korrekturen wie unten gezeigt.


In diesem Fall teilt uns der Linter mit, dass wir den variablen Namen im Echo -Block mit Anführungszeichen einschließen müssen.

Wir können unsere Datei beheben.

Def msg = "Dies ist ein benutzerdefinierter Text"
Pipeline
Agent jeder
Stufen
Stage ('Hallo')
Schritte
Skript
msg = "Jetzt ist die Zeichenfolge anders!!"

echo "$ msg"




Sobald wir behoben sind, können wir unseren Brandbefehl erneut ausführen:

$ Java -Jar Jenkins -Cli.jar -s http: // localhost: 9001/-Auth root: password -websocket deklarativ -linter < .\Jenkinsfile


Da wir keine Fehler in unserer JenkinsFile haben, gibt der Befehl eine Nachricht wie gezeigt zurück:

JenkinsFile erfolgreich validiert.


Und wir haben erfolgreich getestet und verifiziert, dass unsere JenkinsFile bereit ist, sich zu engagieren.

Methode 2 - Hinzufügen des JenkinsFile -Linters zu Ihrem Editor

Die zweite gemeinsame Methode zum Testen und Überprüfen Ihrer JenkinsFile ist das Hinzufügen des Jenkins -Linter -Plugins zu Ihrem Editor.

Jenkins liefert einen Straftäter für:

    1. Eclipse Editor
    2. Visualstudio -Code
    3. Neovim
    4. Atom
    5. Erhabener Texteditor

In diesem Abschnitt wird gezeigt.

Drücken Sie im Visual Studio -Code Strg + Shift + K, um das Menü Extensions zu öffnen. Suche nach "Jenkins Pipeline Linter".

Wählen Sie die Erweiterung „Jenkins Pipeline -Linteranschluss“ aus und klicken Sie auf Installieren.


Öffnen Sie nach der Installation Ihre JenkinsFile im Visual Studio -Code und drücken Sie Strg + Shift + P, um die Befehlspalette zu öffnen.

Geben Sie den Befehl „JenkinsFile validieren“ ein und drücken Sie die Eingabetaste, um auszuführen.

Dies fordert Sie für die Jenkins -Linter -URL auf.

https: /// pipeline-model-converter/validate

Geben Sie den obigen Link ein, wie im folgenden Beispiel gezeigt:

http: // localhost: 8080/pipeline-model-converter/validate


Wenn Ihr Server eine Authentifizierung benötigt, öffnen Sie die Einstellungen für die Visual Studio -Code und suchen Sie nach „Jenkins“.

Legen Sie den Jenkins -Benutzernamen und das Passwort ein.


Sobald Sie den Befehl „Validate JenkinsFile“ ausgeführt haben, analysiert die Erweiterung Ihre JenkinsFile und zeigt potenzielle Probleme an.

Abschluss

Sie haben gelernt, wie man den Jenkins -CLI -Linter verwendet, um Ihre Jenkins -Datei auf Ihrem Computer zu testen und zu überprüfen, bevor Sie sie begehen. Sie haben auch gelernt, wie man den Jenkins -Linter in Visual Studio Code hinzufügt, um Ihre JenkinsFile von Ihrem Editor zu testen.