我目前有并行运行的阶段,但这些阶段内的测试如何。他们也可以并行运行吗?这可以再次使用并行吗?
//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)
}
}
}
)}
答案 0 :(得分:1)
- 嵌套并行块可能导致淹没可用执行程序,因为第一个并行块的每次执行都会调用第二个并行块的多次执行,依此类推。通常,在使用并行时,请仔细考虑并行性和可用的执行程序。
- Parallel Test Executor plugin很棒,对于分发测试执行和限制并行性非常有帮助,因为你可以定义多少" buckets"你的测试分为。
来源:https://github.com/jenkinsci/pipeline-examples/blob/master/docs/BEST_PRACTICES.md