Wie kann ich eine lokal an Jenkinsfile vorgenommene Änderung testen?


210

Beim Schreiben von Jenkins-Pipelines scheint es sehr unpraktisch zu sein, jede neue Änderung festzuschreiben, um zu prüfen, ob sie funktioniert.

Gibt es eine Möglichkeit, diese lokal auszuführen, ohne den Code festzuschreiben?

Antworten:


139

Sie können das Pipeline-Skript nicht lokal ausführen, da der gesamte Zweck darin besteht, Jenkins zu skripten. (Dies ist ein Grund, warum es am besten ist, Ihren JenkinsfileCode kurz und auf Code zu beschränken, der sich tatsächlich mit Jenkins-Funktionen befasst. Ihre eigentliche Erstellungslogik sollte mit externen Prozessen oder Erstellungswerkzeugen behandelt werden, die Sie über eine Zeile shoder einen batSchritt aufrufen .)

Wenn Sie eine Änderung testen wollen Jenkinsfileleben , aber ohne begehen sie, verwenden Sie die Replay - Funktion hinzugefügt 1.14

JENKINS-33925 verfolgt das für ein automatisiertes Testframework gewünschte.


Der Blog-Beitrag sagt, dass es einen "Wiedergabe" -Button gibt. Irgendeine Idee wo? Ich kann es nicht finden.
BoltzmannBrain

8
@BoltzmannBrain, gehen Sie zur Jenkins-Seite Ihres Build-Jobs. Auf der linken Seite sollte die Liste der vorherigen Build-Läufe angezeigt werden. Wenn Sie mit der Maus über eine Build-Lauf-ID (z. B. "# 123") oder ein Datum eines Build-Laufs fahren, wird ein kleiner Abwärtspfeil angezeigt. Wenn Sie darauf klicken, wird ein Kontextmenü mit der Option "Wiedergabe" angezeigt. Die Option ist auch auf der Seite eines Build-Laufs verfügbar.
Gute Nacht Nerd Pride

2
Mit Concourse können Sie Ihre lokalen Skripts für einen Zielerstellungsserver ausführen, sodass Sie überprüfen können, ob dieser auch auf dem Remoteserver funktioniert, bevor Sie Ihre Änderungen festschreiben. concourse.ci/fly-cli.html . Die Jenkins-Wiedergabefunktion ist etwas analog dazu, außer dass sie Einschränkungen aufweist und Sie zuerst einen Build erstellen müssen, um ihn wiederzugeben.
mdo123

2
Sie könnten sich dieses Projekt ansehen, das darauf abzielt, das zu liefern, wonach Sie suchen.
Romain

1
Werfen Sie einen Blick auf JenkinsPipelineUnit ( github.com/jenkinsci/JenkinsPipelineUnit )
user864279

78

Ich habe eine Lösung, die für mich gut funktioniert. Es besteht aus einem lokalen Jenkins, das im Docker ausgeführt wird, und einem Git-Web-Hook, um die Pipeline in den lokalen Jenkins bei jedem Commit auszulösen. Sie müssen nicht mehr auf Ihr Github- oder Bitbucket-Repository pushen, um die Pipeline zu testen.

Dies wurde nur in einer Linux-Umgebung getestet.

Es ist ziemlich einfach, diese Arbeit zu machen, obwohl diese Anweisung ein bisschen lang ist. Die meisten Schritte sind da.

Das brauchen Sie

  • Docker installiert und funktioniert. Dies ist nicht Teil dieser Anweisung.
  • Ein Jenkins, der lokal im Docker läuft. Erklärt wie unten.
    • Die richtigen Rechte (SSH-Zugriffsschlüssel), die Ihr lokaler Jenkins-Docker-Benutzer von Ihrem lokalen Git-Repo abrufen kann. Erklärt wie unten.
    • Ein Jenkins-Pipeline-Projekt, das aus Ihrem lokalen Git-Repository abgerufen wird. Unten erklärt.
    • Ein Git-Benutzer in Ihrem lokalen Jenkins mit minimalen Rechten. Unten erklärt.
  • Ein Git-Projekt mit einem Web-Hook nach dem Festschreiben, der das Pipeline-Projekt auslöst. Unten erklärt.

Das ist wie man es macht

Jenkins Docker

Erstellen Sie anstelle Ihrer Wahl eine Datei namens Dockerfile. Ich platziere es und /opt/docker/jenkins/Dockerfilefülle es damit aus:

FROM jenkins/jenkins:lts
USER root
RUN apt-get -y update && apt-get -y upgrade
# Your needed installations goes here
USER jenkins

Erstellen Sie das Bild local_jenkins

Dies müssen Sie nur einmal tun oder nachdem Sie der Docker-Datei etwas hinzugefügt haben.

$ docker build -t local_jenkins /opt/docker/jenkins/

Starten Sie local_jenkins und starten Sie es neu

Von Zeit zu Zeit möchten Sie Jenkins einfach starten und neu starten. ZB nach einem Neustart Ihres Computers. Dafür habe ich einen Alias ​​erstellt, den ich .bash_aliasesin meinen Home-Ordner eingefügt habe.

$ echo "alias localjenkinsrestart='docker stop jenkins;docker rm jenkins;docker run --name jenkins -i -d -p 8787:8080 -p 50000:50000 -v /opt/docker/jenkins/jenkins_home:/var/jenkins_home:rw local_jenkins'" >> ~/.bash_aliases
$ source .bash_aliases  # To make it work

Stellen Sie sicher, dass der /opt/docker/jenkins/jenkins_homeOrdner vorhanden ist und dass Sie über Lese- und Schreibrechte des Benutzers verfügen.

Um Ihre Jenkins zu starten oder neu zu starten, geben Sie einfach Folgendes ein:

$ localjenkinsrestart

Alles, was Sie in Ihren lokalen Jenkins tun, wird im Ordner / opt / docker / jenkins / jenkins_home gespeichert und zwischen den Neustarts beibehalten.

Erstellen Sie einen SSH-Zugriffsschlüssel in Ihren Docker Jenkins

Dies ist ein sehr wichtiger Teil, damit dies funktioniert. Zuerst starten wir den Docker-Container und erstellen eine Bash-Shell dazu:

$ localjenkinsrestart
$ docker exec -it jenkins /bin/bash

Sie haben jetzt den Docker-Container eingegeben, den Sie an so etwas wie jenkins@e7b23bad10aa:/$in Ihrem Terminal sehen können. Der Hash nach dem @ wird sich sicher unterscheiden.

Erstellen Sie den Schlüssel

jenkins@e7b23bad10aa:/$ ssh-keygen

Drücken Sie bei allen Fragen die Eingabetaste, bis Sie die Eingabeaufforderung erhalten

Kopieren Sie den Schlüssel auf Ihren Computer. Aus dem Docker-Container heraus ist Ihr Computer 172.17.0.1, sollten Sie sich fragen.

jenkins@e7b23bad10aa:/$ ssh-copy-id user@172.17.0.1

user = Ihr Benutzername und 172.17.0.1 ist die IP-Adresse Ihres Computers aus dem Docker-Container.

Sie müssen an dieser Stelle Ihr Passwort eingeben.

Versuchen wir nun, die Schleife zu vervollständigen, indem Sie aus dem Docker-Container auf Ihren Computer senden.

jenkins@e7b23bad10aa:/$ ssh user@172.17.0.1

Dieses Mal sollten Sie Ihr Passwort nicht eingeben müssen. Wenn Sie dies tun, ist etwas schief gelaufen und Sie müssen es erneut versuchen.

Sie befinden sich jetzt im Home-Ordner Ihres Computers. Versuchen Sie es lsund schauen Sie.

Hören Sie hier nicht auf, da wir eine Kette von SSH-Muscheln haben, aus denen wir herauskommen müssen.

$ exit
jenkins@e7b23bad10aa:/$ exit

Richtig! Jetzt sind wir zurück und bereit weiterzumachen.

Installieren Sie Ihre Jenkins

Sie finden Ihre lokalen Jenkins in Ihrem Browser unter http: // localhost: 8787 .

Wenn Sie Ihren Browser zum ersten Mal auf Ihre lokalen Jenkins richten, werden Sie von einem Installationsassistenten begeistert sein. Die Standardeinstellungen sind in Ordnung. Stellen Sie jedoch sicher, dass Sie das Pipeline-Plugin während des Setups installieren.

Richten Sie Ihre Jenkins ein

Es ist sehr wichtig, dass Sie die matrixbasierte Sicherheit unter http: // localhost: 8787 / configureSecurity aktivieren und sich alle Rechte einräumen, indem Sie sich der Matrix hinzufügen und alle Kästchen ankreuzen. (Ganz rechts befindet sich ein Kontrollkästchen.)

  • Wählen Sie Jenkins’ own user databaseals Sicherheitsbereich
  • Wählen Sie Matrix-based securityim Abschnitt Autorisierung
  • Schreiben Sie Ihren Benutzernamen in das Feld User/group to add:und klicken Sie auf die [ Add ]Schaltfläche
  • In der obigen Tabelle sollte Ihr Benutzername mit einem Personensymbol angezeigt werden. Wenn es überkreuzt ist, haben Sie Ihren Benutzernamen falsch eingegeben.
  • Gehen Sie ganz rechts in die Tabelle und klicken Sie auf die Schaltfläche "Alles ankreuzen" oder aktivieren Sie manuell alle Kästchen in Ihrer Zeile.
  • Bitte stellen Sie sicher, dass das Kontrollkästchen deaktiviert Prevent Cross Site Request Forgery exploitsist. (Da dieser Jenkins nur von Ihrem Computer aus erreichbar ist, ist dies keine so große Sache.)
  • Klicken Sie auf [ Save ]und melden Sie sich bei Jenkins ab und wieder an, um sicherzustellen, dass es funktioniert. Wenn dies nicht der Fall ist, müssen Sie /opt/docker/jenkins/jenkins_homevor dem Neustart von vorne beginnen und den Ordner leeren

Fügen Sie den Git-Benutzer hinzu

Wir müssen unserem Git-Hook erlauben, sich mit minimalen Rechten bei unseren lokalen Jenkins anzumelden. Es reicht aus, nur Arbeitsplätze zu sehen und aufzubauen. Deshalb erstellen wir einen Benutzer gitmit Passwort login.

Richten Sie Ihren Browser auf http: // localhost: 8787 / securityRealm / addUser und fügen Sie ihn gitals Benutzernamen und loginals Kennwort hinzu. Klicken Sie auf [ Create User ].

Fügen Sie dem Git-Benutzer die Rechte hinzu

Gehen Sie auf die http: // localhost: 8787 / configureSecurity Seite in Ihrem Browser. Fügen Sie den Git-Benutzer zur Matrix hinzu:

  • Schreiben Sie gitin das Feld User/group to add:und klicken Sie auf[ Add ]

Jetzt ist es Zeit, die Kontrollkästchen für minimale Rechte für den Git-Benutzer zu aktivieren. Nur diese werden benötigt:

  • Insgesamt: lesen
  • Job: bauen
  • Job: entdecken
  • Job: lesen

Stellen Sie sicher, dass das Prevent Cross Site Request Forgery exploitsKontrollkästchen deaktiviert ist und klicken Sie auf[ Save ]

Erstellen Sie das Pipeline-Projekt

Wir gehen davon aus, dass wir den Benutzernamen haben userund unser git-fähiges Projekt mit dem Jenkinsfiledarin aufgerufen wird projectund sich unter befindet/home/user/projects/project

Fügen Sie in Ihrem http: // localhost: 8787 Jenkins ein neues Pipeline-Projekt hinzu. Ich habe es als Referenz Hookpipeline genannt.

  • Klicken Sie New Itemim Jenkins-Menü auf
  • Benennen Sie das Projekt hookpipeline
  • Klicken Sie auf Pipeline
  • Klicken [ OK ]
  • Aktivieren Sie das Kontrollkästchen Poll SCMim Abschnitt Build-Trigger. Lassen Sie den Zeitplan leer.
  • Im Abschnitt Pipeline:
    • wählen Pipeline script from SCM
    • in das Repository URLFeld eingebenuser@172.17.0.1:projects/project/.git
    • in das Script PathFeld eingebenJenkinsfile
  • Speichern Sie das Hookpipeline-Projekt
  • Erstellen Sie die Hookpipeline einmal manuell. Dies ist erforderlich, damit der Poll SCM funktioniert.

Erstellen Sie den Git-Hook

Gehen Sie zum /home/user/projects/project/.git/hooksOrdner und erstellen Sie eine Datei mit dem Namen post-commit:

#!/bin/sh
BRANCHNAME=$(git rev-parse --abbrev-ref HEAD)
MASTERBRANCH='master'

curl -XPOST -u git:login http://localhost:8787/job/hookpipeline/build
echo "Build triggered successfully on branch: $BRANCHNAME"

Machen Sie diese Datei ausführbar:

$ chmod +x /home/user/projects/project/.git/hooks/post-commit

Testen Sie den Post-Commit-Hook:

$ /home/user/projects/project/.git/hooks/post-commit

Überprüfen Sie in Jenkins, ob Ihr Hookpipeline-Projekt ausgelöst wurde.

Nehmen Sie zum Schluss eine beliebige Änderung an Ihrem Projekt vor, fügen Sie die Änderungen hinzu und führen Sie ein Commit durch. Dies löst nun die Pipeline in Ihren lokalen Jenkins aus.

Glückliche Tage!


Ich hatte zu ersetzen docker build -t local_jenkins /opt/docker/jenkins/Dockerfilemit , docker build -t local_jenkins /opt/docker/jenkinsweil Docker beschwerten sich über „nicht in der Lage Kontext vorzubereiten: Kontext muss ein Verzeichnis sein“.
Etienne Neveu

1
Ich erhalte diesen Fehler auf dem Mac. Kann mir bitte jemand dabei helfen? >> FEHLER: ssh: Verbindung zum Host 172.17.0.1 Port 22: Verbindung abgelehnt -
Manoj Shrestha

@ManojShrestha: Die IP 172.17.0.1 ist die Standard-IP des Computers, auf dem die Docker-Container ausgeführt werden. Sie können stattdessen die IP-Adresse Ihrer Computer (MAC: s) verwenden.
Javabeangrinder

@ManojShrestha: Sie können auch versuchen, die Gateway-IP Ihres Setups wie $ docker inspect jenkins | grep Gateway
folgt herauszufinden

2
Wenn Ihr Docker-Host unter macOS installiert ist und Sie sich innerhalb des Docker-Containers bei ssh anmelden möchten, sollten Sie ssh user@docker.for.mac.localhost statt der IP-Adresse. Stellen Sie außerdem sicher, dass Sie die Remote-Anmeldefunktion in den Systemeinstellungen von macOs -> Menü für
freigegebene

60

TL; DR

Langversion
Jenkins Pipeline-Tests werden immer schmerzhafter. Im Gegensatz zum klassischen Ansatz der deklarativen Jobkonfiguration, bei dem der Benutzer auf die Benutzeroberfläche beschränkt war, ist die neue Jenkins-Pipeline eine vollwertige Programmiersprache für den Erstellungsprozess, bei dem Sie den deklarativen Teil mit Ihrem eigenen Code mischen. Als gute Entwickler möchten wir auch einige Unit-Tests für diese Art von Code durchführen.

Bei der Entwicklung von Jenkins-Pipelines sollten Sie drei Schritte ausführen. Der Schritt 1. sollte 80% der Anwendungsfälle abdecken.

  1. Machen Sie so viel wie möglich in Build-Skripten (z. B. Maven, Gradle, Gulp usw.). Dann rufen Skripte in Ihrer Pipeline die Build-Tasks einfach in der richtigen Reihenfolge auf. Die Build-Pipeline orchestriert und führt nur die Build-Aufgaben aus, verfügt jedoch über keine wichtige Logik, die spezielle Tests erfordert.
  2. Wenn die vorherige Regel nicht vollständig angewendet werden kann, wechseln Sie zu gemeinsam genutzten Pipeline-Bibliotheken, in denen Sie benutzerdefinierte Logik selbst entwickeln, testen und in die Pipeline integrieren können.
  3. Wenn all dies fehlschlägt, können Sie eine der Bibliotheken ausprobieren, die kürzlich (März 2017) verfügbar waren. Jenkins Pipeline Unit Testing Framework oder PipelineUnit (Beispiele). Seit 2018 gibt es auch Jenkinsfile Runner , ein Paket zur Ausführung von Jenkins-Pipelines über ein Befehlszeilentool.

Beispiele

Das PipelineUnit GitHub-Repo enthält einige Spock-Beispiele zur Verwendung des Jenkins Pipeline Unit-Testframeworks


1
Können Sie auch einen kurzen Vergleich dieser beiden Bibliotheken hinzufügen?
Sorin

23

Jenkins verfügt über eine Wiedergabefunktion, mit der Sie einen Auftrag schnell wiedergeben können, ohne die Quellen zu aktualisieren:

Wiederholungsfunktion


1
Beachten Sie, dass es auf der Build-Seite angezeigt wird, nicht auf der Projekt- oder Verzweigungsseite.
ArtOfWarfare

17

Zum Zeitpunkt des Schreibens (Ende Juli 2017) mit dem Blue Ocean- Plugin können Sie die Syntax einer deklarativen Pipeline direkt im visuellen Pipeline-Editor überprüfen . Der Editor funktioniert über die Blue Ocean-Benutzeroberfläche, wenn Sie nur für Github-Projekte auf "Konfigurieren" klicken (dies ist ein bekanntes Problem, und sie arbeiten daran, dass es auch auf Git usw. funktioniert).

Wie in dieser Frage erläutert , können Sie den Editor öffnen, um Folgendes zu durchsuchen:

[Jenkins URL]/blue/organizations/jenkins/pipeline-editor/

Klicken Sie dann in die Mitte der Seite und drücken Sie Ctrl+S, um einen Textbereich zu öffnen, in den Sie ein deklaratives Pipeline-Skript einfügen können. Wenn Sie auf Aktualisieren klicken und ein Syntaxfehler vorliegt, teilt Ihnen der Editor mit, wo sich der Syntaxfehler befindet. Wie in diesem Screenshot:

Als schnellen Test habe ich fälschlicherweise "Steppen" anstelle von "Schritte" eingegeben.

Wenn kein Syntaxfehler vorliegt, wird der Textbereich geschlossen und die Seite visualisiert Ihre Pipeline. Keine Sorge, es wird nichts gespeichert (wenn es sich um ein Github-Projekt handelt, wird die Jenkinsfile-Änderung vorgenommen).

Ich bin neu bei Jenkins und das ist sehr hilfreich, ohne das musste ich viele Male eine Jenkins-Datei festschreiben, bis es funktioniert (sehr nervig!). Hoffe das hilft. Prost.


2
Das liegt daran, dass Jenkins ab 2017 immer noch darauf abzielt, Probleme von Point-and-Click-Softwareentwicklern zu lösen;) .... Zumindest Atom hat einen anständigen Groovy-Linter. Ist nur Groovy aber es hilft.
Sorin

Der Editor mit Syntaxhervorhebung ist ebenfalls Teil der klassischen Jenkins-Benutzeroberfläche.
Vadimo

6

Ein bisschen spät zur Party, aber deshalb habe ich jennyeine kleine Neuimplementierung einiger Kernschritte von Jenkinsfile geschrieben. ( https://github.com/bmustiata/jenny )


Nichts für ungut, aber wenn Sie Ihre Inhalte nicht ständig aktualisieren, ist dies ziemlich nutzlos, da die Pipeline-Syntax derzeit in ständigem Wandel zu sein scheint.
krad

Nicht vergeben. Nach dem, was ich bisher gesehen habe, ist die Pipeline-Syntax für die grundlegenden Pipeline-Schritte ziemlich standardisiert ( jenkins.io/doc/pipeline/steps/workflow-basic-steps ). Ich benutze es jetzt seit ~ 2 Jahren, ohne auf rückwärts inkompatible Änderungen zu stoßen. Jenkins-Plugins sollten nicht imho verwendet werden, und die sich ändernde API kann mithilfe benutzerdefinierter Befehle in gemeinsam genutzten Bibliotheken abstrahiert werden, für die Sie API-Garantien haben. Wenn Sie über die deklarative Syntax sprechen, ist dies möglicherweise der Fall. Ich verwende nur die programmatische API in meinen Pipelines, und das unterstützt Jenny. Rock solid :)
bogdan.mustiata

5

Soweit ich weiß, ist dieses Pipeline-Plugin die "Engine" der neuen Jenkinsfile-Mechanik. Ich bin mir also ziemlich sicher, dass Sie damit Ihre Skripte lokal testen können.

Ich bin mir nicht sicher, ob zusätzliche Schritte erforderlich sind, wenn Sie es in eine Jenkins-Datei kopieren, aber die Syntax usw. sollte genau gleich sein.

Bearbeiten: Die Referenz auf der "Engine" gefunden, diese Funktionsbeschreibung, letzter Absatz, erster Eintrag überprüfen .


5

In meinem Entwicklungs-Setup - ohne einen richtigen Groovy-Editor - sind viele Jenkinsfile-Probleme auf einfache Syntaxfehler zurückzuführen . Um dieses Problem zu beheben, können Sie die Jenkins-Datei anhand Ihrer Jenkins-Instanz (ausgeführt unter $JENKINS_HTTP_URL) validieren :

curl -X POST -H $(curl '$JENKINS_HTTP_URL/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)') -F "jenkinsfile=<Jenkinsfile" $JENKINS_HTTP_URL/pipeline-model-converter/validate

Der obige Befehl ist eine leicht modifizierte Version von https://github.com/jenkinsci/pipeline-model-definition-plugin/wiki/Validating-(or-linting)-a-Declarative-Jenkinsfile-from-the-command-line


4
Dies ist genau das,
wonach

2

Abgesehen von der Wiedergabefunktion, die andere bereits erwähnt haben (ebenso wie ihre Nützlichkeit!), Fand ich Folgendes auch nützlich:

  1. Erstellen Sie einen Test-Pipeline-Job, in den Sie Pipeline-Code eingeben oder auf Ihr Repo / Ihren Zweig einer Jenkins-Datei verweisen können, um schnell etwas zu testen. Verwenden Sie für genauere Tests eine Multibranch-Pipeline, die auf Ihre eigene Gabel zeigt, wo Sie schnell Änderungen vornehmen und Festschreibungen vornehmen können, ohne das Produkt zu beeinträchtigen. Sachen wie BRANCH_NAME env sind nur in Multibranch verfügbar.
  2. Da Jenkinsfile Groovy-Code ist, rufen Sie ihn einfach mit "groovy Jenkinsfile" auf, um die grundlegende Syntax zu überprüfen.

Die Verwendung separater Jobs, die Sie verstecken und Ihre Benutzer nicht verwirren können, ist eines der wichtigsten Dinge. Ich bearbeite die Jenkins-Dateien mit IntelliJ. Es ist ziemlich gut darin, Syntaxfehler anzuzeigen. Die Antwortschaltfläche ist jedoch der Schlüssel. Ich erstelle einen Zweig mit dem grundlegenden Änderungslauf, der - es geht normalerweise ein bisschen schief. Ich bearbeite dann die Jenkins-Datei, kopiere sie und füge sie in das Wiedergabefenster ein und führe sie erneut aus. Ich wiederhole dies, bis es in Ordnung ist, und schreibe dann die Arbeitsversion fest.
Johnfo

1

Fügen Sie Ihren SSH-Schlüssel in Ihr Jenkins-Profil ein und verwenden Sie den deklarativen Linter wie folgt:

ssh jenkins.hostname.here declarative-linter < Jenkinsfile

Dadurch wird eine statische Analyse Ihrer Jenkins-Datei durchgeführt. Definieren Sie im Editor Ihrer Wahl eine Tastenkombination, die diesen Befehl automatisch ausführt. Gehen Sie in Visual Studio Code, den ich verwende, zu Aufgaben> Aufgaben konfigurieren und verwenden Sie dann den folgenden JSON, um einen Validate Jenkinsfile- Befehl zu erstellen :

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Validate Jenkinsfile",
      "type": "shell",
      "command": "ssh jenkins.hostname declarative-linter < ${file}"
    }
  ]
}

0

Ich benutze Replay Future, um ein Update zu machen und schnell zu laufen.


1
Können Sie uns bitte weitere Informationen darüber geben, wie Sie diese Funktion ausführen?
Kosnik

1
Ich benutze Bit-Bucket als Quellmanager, dann habe ich ein Projekt auf Jenkins erstellt. Ich möchte mein Repository automatisch entdecken. Ich empfehle diesen Beitrag. Nach jedem Druck auf mein Repo spielt Jenkins automatisch meine Jenkins-Datei ab. Wenn dies fehlschlägt, befindet sich im linken Menü eine Schaltfläche namens Wiedergabe. ==> Diese Schaltfläche öffnet einen Editor mit Ihrer Jenkins-Datei. Sie können sie bearbeiten und den Job erneut abspielen ,
AhmedDrira

0

Mit einigen Einschränkungen und für geskriptete Pipelines verwende ich diese Lösung:

  1. Pipeline-Job mit einem Inline-Groovy-Skript:

node('master') {
    stage('Run!') {
                def script = load('...you job file...')
    }
}

  1. Jenkinsfile zum Testen haben die gleiche Struktur wie für Lesfurets:

def execute() {
 ... main job code here ...
}
execute()
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.