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.

之后的任何步骤