2016-08-16 22 views
2

Pipelineプラグインを使用しているJenkinsサーバーがあります。この中で、いくつかのビルドを並行して立ち上げ、ビルドが完了してからパイプラインの次の段階に移りたいと思っています。閉鎖からJenkins Pipelinesジョブを並行して実行

ので、同様に、私は、明示的に構築ジョブを書き出す場合、私は、これを正常に行うことができる午前:

parallel 'one': { 
    build job: 'job1', 
     parameters: [ 
      [$class: 'StringParameterValue', name: 'CONFIG', value: "foo"] 
     ], 
     propagate: false, 
     wait: true 
}, 'two': { 
    build job: 'job2', 
     parameters: [ 
      [$class: 'StringParameterValue', name: 'CONFIG', value: "foo"] 
     ], 
     propagate: false, 
     wait: true 
}, 'three': { 
    build job: 'job3', 
     parameters: [ 
      [$class: 'StringParameterValue', name: 'CONFIG', value: "foo"] 
     ], 
     propagate: false, 
     wait: true 
} 

しかし、現実には、構築する必要のあるジョブの可変数があるでしょう、これらを明示的に書くことは実現可能ではありません。私はそうのような閉鎖でビルドをラップしようとしています

def createParallel = { String parallelName -> 
    parallelName: { 
     build job: 'jobX', 
      parameters: [ 
       [$class: 'StringParameterValue', name: 'CONFIG', value: "foo"] 
      ], 
      propagate: false, 
      wait: true 
    } 
} 

parallel (
    createParallel('one'), 
    createParallel('two'), 
    createParallel('three') 
) 

この方法の問題、実際に並列にキックオフしていないのビルドである - 彼らは、以前のビルドが完了するのを待って、一度に一つの構築。私は間違って何をしていますか?

答えて

1

ビルドパラメータを指定していないため、Jenkinsはキューアイテムを意図的に統合します。

+0

ああ、謝罪します。この例から削除して読みやすくしました。実際のバージョンにはパラメータがあります。それでも、2つのバージョンが異なる結果を生み出す理由はわかりません。彼らは両方ともパラメタなしで合体すべきではないか? – Software2

0

短い答えは、現在のところ、JenkinsではバグJENKINS-33051JENKINS-25979のためにこれを行うことができないということです。

私が上記で行っていたことは、基本的に1つのパラメータを持つ3つの並列を作成することでした。何行われる必要があることは、リスト内の閉鎖場所で、その後、パラメータとしてリストを広め、そのよう:

def list = [ createParallel('one'), createParallel('two'), createParallel('three') ] 
parallel (*list) 

残念ながら、これは今ジェンキンスに実装されていません。

関連する問題