2017-05-16 4 views
2

Ich habe Projekt A und Projekt B. Ich würde gerne Parameter (wie die BranchName und ArtifactoryID) von Projekt A zu Projekt B übergeben. Beide sind Multi-Branch-Pipelines mit einem Declarative Skript Jenkinsfile.Übergeben Sie Variablen über Jenkins deklarative Mehrzweigprojekte Pipeline

Wenn ich den Snippet Generator verwende, sagt er mir das Projekt "ist nicht parametrisiert". Wenn ich mir die Konfiguration der Multi-Branch-Pipeline anschaue, sehe ich keine Möglichkeit, sie zu parametrisieren. Was vermisse ich? (Siehe beigefügte)

enter image description here

enter image description here

Ein Google-Ergebnis zeigt dies, aber ich bin nicht sicher, wie es angenommen hat, params zwischen mehreren Abzweigleitungen passieren: https://issues.jenkins-ci.org/browse/JENKINS-32780

Antwort

3

mir dies dachte, aus. Ich nutzte eine Antwort von einem Kommentar hier ein: Pipeline pass parameters to downstream jobs

Eine detaillierte Erklärung mit meinem Beispiel oben gezeigt, mein Projekt A jenkinsfile vor den Stufen der folgenden würde:

parameters 
    { 
    string(name: 'BRANCH_PASSED_OVER', defaultValue: '${env.BRANCH_NAME}', description: 'pass branch value') 
    string(name: 'PERSON2', defaultValue: 'Mr Jenkins', description: 'Who should I say hello to?') 
    } 

... und die folgende für die Build-Schritt Phase

stage('Build downstream') 
    { 
    steps 
    { 
    build job: 'BUILD/CMTest2/' + env.BRANCH_NAME.replaceAll("/", "%2F"), wait: false, parameters: [string(name: 'PERSON2', value: params.PERSON2), string(name: 'PASS_BRANCH_NAME', value: env.BRANCH_NAME)] 
    } 
    } 

in Projekt B dann in meinem jenkinsfile wie so den param nenne ich könnte:

stage('Collect Info') 
    { 
    steps 
    { 
     echo "Hello ${params.PERSON2}" 
     echo "PASS_BRANCH_NAME: ${params.PASS_BRANCH_NAME}" 
    } 
    } 
Verwandte Themen