Jenkins 工作流并行步骤和连接
Jenkins Workflow Parallel Step and Joins
我目前正在 Jenkins Workflow 脚本中使用 parallel
构建步骤,其中每个分支花费不同的时间。
parallel(fastBranch: {
// Do something fast
}, slowBranch: {
// Do something slow
})
我遇到了一个问题,我认为 slowBranch
可能没有完成,因为 fastBranch
更快,这可能吗? parallel
步骤中是否有任何类型的连接机制来确保在所有分支完成之前不执行下一行。
是的,有加入。对于这份工作:
parallel(fastBranch: {
build("Test_fast")
}, slowBranch: {
build("Test_slow")
})
build("Test_join")
日志是:
parallel {
Schedule job Test_fast
Schedule job Test_slow
Build Test_fast #1 started
Build Test_slow #1 started
Test_fast #1 completed
Test_slow #1 completed
}
Schedule job Test_join
Build Test_join #1 started
Test_join #1 completed
时间是:
Fast Start: 17:06:00
Fast Finish: 17:06:01
Slow Start: 17:06:00
Slow Finish: 17:06:20
Join Start: 17:06:30
Join Finish: 17:06:30
那应该是不可能的。我对 25 个并行作业使用 parallel
,它们都在不同的时间完成。在它们都执行完后,它将处理调用 parallel
.
之后的任何步骤
我目前正在 Jenkins Workflow 脚本中使用 parallel
构建步骤,其中每个分支花费不同的时间。
parallel(fastBranch: {
// Do something fast
}, slowBranch: {
// Do something slow
})
我遇到了一个问题,我认为 slowBranch
可能没有完成,因为 fastBranch
更快,这可能吗? parallel
步骤中是否有任何类型的连接机制来确保在所有分支完成之前不执行下一行。
是的,有加入。对于这份工作:
parallel(fastBranch: {
build("Test_fast")
}, slowBranch: {
build("Test_slow")
})
build("Test_join")
日志是:
parallel {
Schedule job Test_fast
Schedule job Test_slow
Build Test_fast #1 started
Build Test_slow #1 started
Test_fast #1 completed
Test_slow #1 completed
}
Schedule job Test_join
Build Test_join #1 started
Test_join #1 completed
时间是:
Fast Start: 17:06:00
Fast Finish: 17:06:01
Slow Start: 17:06:00
Slow Finish: 17:06:20
Join Start: 17:06:30
Join Finish: 17:06:30
那应该是不可能的。我对 25 个并行作业使用 parallel
,它们都在不同的时间完成。在它们都执行完后,它将处理调用 parallel
.