2016-11-23 63 views
-1

我目前有平行的平臺運行,但這些平臺內部的測試如何。它們也可以並行運行嗎?這可以再次使用並行嗎?在jenkins管道中平行運行每個平臺內的構建

//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
  • 嵌套並行塊可導致淹沒可用的執行者,作爲第1並聯塊的每個執行調用第2並聯塊的多個執行,等等。一般來說,在使用並行時仔細考慮你的並行性和可用的執行者。
  • Parallel Test Executor plugin非常棒,可以極大地有助於分配您的測試執行和限制您的並行性,因爲您定義了測試分爲多少個「存儲桶」。

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