5

Es scheint jetzt wie Sie können nur eine einzige Jenkinsfile an einem einzigen Ort in Ihrem Projekt, wenn Multibranch-Typ verwenden.Jenkins Workflow Multibranch ermöglicht die Angabe Jenkinsfile Pfad

Gibt es eine Möglichkeit zu konfigurieren, so kann ich die Jenkinsfile woanders als im Stamm des Projekts unter dem Namen Jenkinsfile platzieren. Es gibt Hoffnung, da es eine Option für eine feste Konfiguration gibt, vielleicht ist dies ein Feature für die Zukunft, aber ich würde die Option sehr schätzen, da ich in der aktuellen Situation nicht die Option habe, alles als eine schön kompilierte Pipeline auszuführen Größe des Repo. Ich denke daran, mehrere Jenkins-Jobs gegen dasselbe Repository zu haben.

- Marcus

Antwort

1

Ich glaube, ich habe in ein ähnliches Problem auftreten.

Was Sie tun können, ist eine andere "Pipeline" Datei woanders gespeichert zu haben. Dies kann an derselben Kasse oder an einer anderen Kasse sein.

In dieser Datei können Sie Methoden definieren und Sie müssen mit "return this" schließen, damit die Jenkins-Datei, die startet, das zweite Skript verwenden kann. Beispiel:

def initialize(){ 
    wrap([$class: 'BuildUser']) { 
     env.buildUserName = "$env.BUILD_USER" 
     env.buildUserId = "$env.BUILD_USER_ID" 
     env.buildUserEmail = "$env.BUILD_USER_EMAIL" 
    } 
} 
// Has to exist with 'return this;' in order to be used as library 
return this; 

Im Jenkinsfile können Sie dann wie folgt vor:

def steps 
node { 
    steps = load 'MyJenkinsPipelineScript.groovy' 
    steps.initialize() 
} 

Basierend auf allen Umgebungsvariablen können Sie verschiedene Dateien laden. Ich hoffe, das hilft.

Verwandte Themen