マイジェンキンスパイプラインは、(小さな構文の誤差はご容赦ください)、次のようになります。は、パイプラインの仕事で、ノードごとの環境変数を設定する
def buildsToDo = "foo bar".tokenize()
def buildPlan = [:]
for (int i = 0; i < buildsToDo.size(); i ++) {
def tag = buildsToDo[i]
buildPlan[tag] = {
node(tag) {
env.ENVVAR = tag
stage("build " + tag) {
sh 'env'
}
}
}
}
parallel(buildPlan)
私の意図は、1つのENVVAR=foo
を持つノードとENVVAR=bar
のものを持っていることです。
実際に表示されるのは、env
コマンドを実行すると、両方のノードにENVVAR=bar
が設定されていることです。
this tutorialによると、[特殊変数env
]のプロパティは、現在のノード上の環境変数です。だから私はこれがうまくいくと思います。
'env'は、ビルドのグローバルなので、あなたが書いたときに、' env.ENVVAR = tag'次の2つの並列実行スレッドから同じ値にアクセス:並列ブロックのうち、揮発性の変数を移動することにも役立ちます。 – izzekil