2016-11-23 4 views
-1

В настоящее время я выполняю этапы параллельно, но как насчет тестов внутри этих этапов. Могут ли они также выполняться параллельно? Можно ли это сделать, используя параллель снова?Запуск строит внутри каждой ступени параллельно в трубе дженкинсов

//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
  • Вложенные параллельные блоки могут привести к заболачиванию ваших доступных исполнителей, так как каждое выполнение первого параллельного блока вызывает множественные казни второго параллельного блока, и так далее. В общем, внимательно следите за своим параллелизмом и вашими доступными исполнителями при параллельном использовании.
  • Parallel Test Executor plugin является потрясающим и может быть чрезвычайно полезным как для распространения вашего теста, так и для дросселирования вашего параллелизма, поскольку вы определяете, сколько «ведер» ваши тесты делятся на.

Источник: https://github.com/jenkinsci/pipeline-examples/blob/master/docs/BEST_PRACTICES.md