2016-09-20 16 views
0

Jenkinsビルドパイプラインを使用して、Jenkinsジョブを呼び出しています。私はJenkinsの仕事の一部として変数を設定する方法を見つけようとしています(理論的にはこの変数をそれぞれ独自のものに設定できます)。最初の問題は、最初の仕事の一部としてそのような変数を設定する方法がわかりません。次に、パイプライン上のジョブからその変数をGroovyスクリプトを使って抽出する方法がわかりません。Jenkinsのジョブのビルドパラメータを設定して次のパイプラインステージに渡す方法

例は次のとおりです。

node { 
    stage 'First Job' 
    //I want to set a parameter as part of the build steps in this job 
    build 'first-job' 
    stage 'Second Job' 
    //I want the variable set in the first job passed in here 
    build job: 'second-job', parameters: [string(name: 'FOO', value: myParam) 
} 
+0

「最初のジョブ」からパラメータを取得し、「2番目のジョブ」に渡すことはできません。私の例を見てくださいhttp://stackoverflow.com/a/38101073 – anton

答えて

0

私はそれが本当にパイプラインの哲学ではありませんので、あなたが簡単にそれを行うことができるとは思いません。下流のジョブにするたびに、上流の仕事からのパラメータを構築渡す...

Main job -> First job -> Second job 

:古いフリースタイルプロジェクトを使う

は、次のようなあなたの仕事を連鎖しているだろう。

しかし、pipelinesでは、哲学は全く異なり、すべての複雑なワークフローを単一のパイプラインとして扱うことを目指しています。それをきれいに保つために、関数をロードすることができ、変数を渡して取得するのが非常に簡単になります。

例:

node { 
    def functions = load 'functions.groovy' 

    stage 'First part' 
    def outputParamOfPart1 = functions.function1(yourParameter) 

    stage 'Second part' 
    def outputParamOfPart2 = functions.function2(outputParamOfPart1) 
} 

のように。私はあなたが本当にあなたの別の仕事を扱っている方法を考え直さなければならないと思います。ジョブをパイプラインの機能とは別のジョブとして分離したジョブとして保存する必要がある場合は、Jenkinsのグローバルプロパティを常に確認することができます。

関連する問題