Vorlage Jenkinsfile für alle Projekte

8

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:

  • lädt die Vorlage aus dem Repository
  • lege Stufen in die Mitte von Template Jenkinsfile
Kapitalny 22.02.2017, 15:43
quelle

2 Antworten

5

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.

  • Shared Libraries :

      

    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.

Gerold Broser 22.02.2017, 17:08
quelle
5

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.

    
djhaskin987 25.05.2017 18:49
quelle

Tags und Links