在jenkins管道中并行运行每个阶段内的构建

时间:2016-11-23 16:28:31

标签: jenkins jenkins-pipeline jenkins-workflow

我目前有并行运行的阶段,但这些阶段内的测试如何。他们也可以并行运行吗?这可以再次使用并行吗?

//List for all the tests
def TeamA_Tests = ["AAA","AAA1"]
def TeamB_Tests = ["BBB","BBB1"]
def TeamC_Tests = ["CCC","CCC1"]
def TeamD_Tests = ["DDD","DDD1","DDD3"]

//Pipeline
node('master') {
   parallel("stream 1(A)" : {
    stage('A') { // for display purposes
       for (item in TeamA_Tests) {
            buildJob(item)
            }
        }
   },
   "stream 2(B)" : {
    stage('B') {
        for (item in TeamB_Tests) {
            buildJob(item)
            }
        }
    },
   "stream 3 (C)" : {
    stage('C') {
        for (item in TeamC_Tests) {
            buildJob(item)
            }
        }
    },
   "stream 4 (D)" : {
    stage('D') {
        for (item in TeamD_Tests) {
            buildJob(item)
            }
        }
    }
)}

1 个答案:

答案 0 :(得分:1)

  
      
  • 嵌套并行块可能导致淹没可用执行程序,因为第一个并行块的每次执行都会调用第二个并行块的多次执行,依此类推。通常,在使用并行时,请仔细考虑并行性和可用的执行程序。
  •   
  • Parallel Test Executor plugin很棒,对于分发测试执行和限制并行性非常有帮助,因为你可以定义多少" buckets"你的测试分为。
  •   

来源:https://github.com/jenkinsci/pipeline-examples/blob/master/docs/BEST_PRACTICES.md