Zum Beispiel:
Ich habe 30 Multibranch-Git-Projekte. Alle Projekte haben ihre eigene Jenkins-Datei. Und plötzlich finde ich ein cooles Jenkins-Plugin, das ich für alle Projekte hinzufügen möchte. Dies ist schmerzhaft, es bei allen Projekten zu tun, und das ist eine große Zeitverschwendung.
Ist es möglich, etwas wie Vorlage Jenkinsfile zu erstellen, die so etwas wie Wrapper für Project Jenkinsfile oder etwas Ähnliches sein wird, was mir die Möglichkeit gibt, Änderungen an einem Ort statt an 30 Orten vorzunehmen?
Was ich will, ist so etwas:
%Vor%Template-Datei, die in einigen Repo ist, wird so gesucht. Für alle Projekte sind eigene Stufen definiert, die in der Mitte der Vorlage Jenkinsfile enthalten und im Projekt definiert sind.
Also Jenkinsfile im Projekt muss:
Sie könnten verwenden:
das Config File Provider Plugin unter Verwendung der Konfigurationsdateien in Jenkins Pipelines :
%Vor% load:
Bewerten Sie eine Groovy-Quelldatei im Pipeline-Skript :
Nimmt einen Dateinamen im Arbeitsbereich und führt ihn als Groovy-Quelltext aus.
Oft ist es nützlich, Teile von Pipelines zwischen verschiedenen Projekten zu teilen, um Redundanzen zu reduzieren und den Code " DRY " zu behalten. .
Pipeline unterstützt die Erstellung von "Shared Libraries", die in externen Quellcodeverwaltungs-Repositories definiert und in bestehende Pipelines geladen werden können.
Wie ich immer sage,
Freunde lassen keinen Template-Code für Freunde zu.
Im Allgemeinen ist es meine letzte Zuflucht, Code zu schreiben, der wiederum mehr Code generiert. Außerdem ist es in Ihrem Anwendungsfall nicht nützlich.
Was Sie eigentlich fragen ist: "Ich habe Code, den ich zwischen 30 Jenkinsfiles teilen möchte". Der beste Weg, um Code zu teilen, ist natürlich, eine gemeinsame Bibliothek zu erstellen und diese aus dem Code zu verwenden.
Glücklicherweise dieses Konzept wird vollständig in Jenkinsfiles unterstützt. Ich empfehle seine Verwendung für Ihren Anwendungsfall. Aus dem einleitenden Absatz im obigen Link:
Da Pipeline für immer mehr Projekte in einer Organisation übernommen wird, häufige Muster werden wahrscheinlich entstehen. Oft ist es nützlich zu teilen Teile von Pipelines zwischen verschiedenen Projekten zur Reduzierung von Redundanzen und Code "DRY" beibehalten.
Pipeline unterstützt das Erstellen von "Shared Libraries", die es sein können definiert in externen Quellcodeverwaltungs-Repositories und geladen in bestehende Pipelines.
Aktualisieren Sie dann einfach die Bibliothek und alle Jenkins-Dateien, die sie verwenden, werden ebenfalls aktualisiert. Sie können Ihre gemeinsam genutzte Bibliothek versionieren und die Einrichtung wird viel einfacher zu debuggen.
Tags und Links jenkins jenkins-pipeline