2017-05-16 8 views
2

私はプロジェクトAとプロジェクトBを持っています。プロジェクトAからプロジェクトBにパラメータ(BranchNameやArtifactoryIDなど)を渡したいと思います。両方とも宣言スクリプトJenkinsfile。Jenkinsマルチブランチ宣言パイプラインプロジェクト間で変数を渡す

スニペットジェネレータを使用すると、「パラメータ化されていません」というプロジェクトが表示されます。マルチブランチパイプラインの設定を見るとき、私はそれをパラメータ化する方法を見ません。私は何が欠けていますか? (添付資料参照)

enter image description here

enter image description here

Googleの結果はこれを示しているが、私は多分岐パイプラインの間のparamsを渡すことになっていますかどうかはわかりません。https://issues.jenkins-ci.org/browse/JENKINS-32780

答えて

3

私はこれを考え出しでる。ステージ前に、次の必要があります私のプロジェクト、私の例では、上記のよう jenkinsfileを使用してPipeline pass parameters to downstream jobs

詳細な説明の場合:私はここのコメントから答えを活用

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?') 
    } 

を...と私jenkinsfileで、その後プロジェクトBでビルドステップの段階

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)] 
    } 
    } 

ために、次の私はそうのようなのparamを呼び出すことができます:

stage('Collect Info') 
    { 
    steps 
    { 
     echo "Hello ${params.PERSON2}" 
     echo "PASS_BRANCH_NAME: ${params.PASS_BRANCH_NAME}" 
    } 
    } 
関連する問題