3
テストツールの出力に基づいてJenkinsステージを並列化する必要があります。しかし、すべての並列ノードが(プラグインのcurrently brokenループに加えて)等しく定義されているため、問題が発生しています。 は、ワークフロースクリプトの例をダウントリム:Jenkinsワークフロー:ツール出力に基づいてステップを並列化する
instances = ["one", "two", "three"]
print "Testing instances: " + instances
test_nodes = [:]
for (int i = 0; i < instances.size(); i++) {
instance_name = instances.get(i)
println "Processing instance " + instance_name
test_nodes["tk-${instance_name}"] = {
node {
stage name: ('stage ' + instance_name)
echo instance_name
}
}
}
echo "test_nodes: ${test_nodes}"
parallel test_nodes
次のように私は結果を期待しながら:
node {
stage name: 'stage one'
echo 'one'
},
node {
stage name: 'stage two'
echo 'two'
},
node {
stage name: 'stage three'
echo 'three'
}
私はとして定義されているすべての3つのノードを取得する - それはで見ることができるよう次の出力(繰り返し出力に注意してください。three
):
[Pipeline] echo
Testing instances: [one, two, three]
[Pipeline] echo
Processing instance one
[Pipeline] echo
Processing instance two
[Pipeline] echo
Processing instance three
[Pipeline] echo
test_nodes: [tk-one:[email protected], tk-two:[email protected], tk-three:[email protected]]
[Pipeline] Execute in parallel : Start
[Pipeline] [tk-one] parallel { (Branch: tk-one)
[Pipeline] [tk-two] parallel { (Branch: tk-two)
[Pipeline] [tk-three] parallel { (Branch: tk-three)
[Pipeline] [tk-one] Allocate node : Start
[tk-one] Running on master in /var/lib/jenkins/jobs/cookbook-pipeline-cookbook-site-mstypo3org/workspace
[Pipeline] [tk-two] Allocate node : Start
[tk-two] Running on master in /var/lib/jenkins/jobs/cookbook-pipeline-cookbook-site-mstypo3org/[email protected]
[Pipeline] [tk-three] Allocate node : Start
[tk-three] Running on master in /var/lib/jenkins/jobs/cookbook-pipeline-cookbook-site-mstypo3org/[email protected]
[Pipeline] [tk-one] node {
[Pipeline] [tk-two] node {
[Pipeline] [tk-three] node {
[Pipeline] [tk-one] echo
[tk-one] three
[Pipeline] } //node
[Pipeline] [tk-two] echo
[tk-two] three
[Pipeline] } //node
[Pipeline] [tk-three] echo
[tk-three] three
[Pipeline] } //node
[Pipeline] Allocate node : End
[Pipeline] Allocate node : End
[Pipeline] Allocate node : End
[Pipeline] } //parallel
[Pipeline] } //parallel
[Pipeline] } //parallel
[Pipeline] Execute in parallel : End
[Pipeline] End of Pipeline
なぜこれが起こっていますか? workflow-cps
の別のバグですか?何か間違っていますか? parallel exampleはどの変数にもアクセスしません。
私はGroovyの初心者として私を助けてくれてありがとう!引用されたドキュメントを読む。 – StephenKing
ようこそ、また、[この文書](https://jamesgdriscoll.wordpress.com/2012/04/14/groovy-bindings-or-adding-keywords-to-your-dsl/)のグルーヴィーバインディングメカニックスが役立ちます。 –