Jenkins工作流并行步骤和Jenkins配置
我目前正在研究如何最好地在Jenkins工作流脚本中使用并行步骤,我只是想澄清我对如何工作的理解Jenkins工作流并行步骤和Jenkins配置,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我目前正在研究如何最好地在Jenkins工作流脚本中使用并行步骤,我只是想澄清我对如何工作的理解 parallel(firstTask: { node { // Do some stuff } }, secondTask: { node { // Do some other stuff } }) 在这种情况下,每个任务是否都会因为其包含在节点中而使用一个执行器?如果没有节点块,任务还会并发运行吗 大概最有效的解决方案是在一个单独的从
parallel(firstTask: {
node {
// Do some stuff
}
}, secondTask: {
node {
// Do some other stuff
}
})
在这种情况下,每个任务是否都会因为其包含在节点中而使用一个执行器?如果没有节点块,任务还会并发运行吗
大概最有效的解决方案是在一个单独的从机上运行每个节点
我目前正在使用一个带有两个执行器的单主机箱的设置(尽管因为它是四核机器,我想我可以增加这个),我只是在尝试判断使用并行步骤的最佳方式,或者在这个设置中是否不值得担心
如果没有节点块,任务还会并发运行吗
是的,这个:
parallel(firstTask: {
// Do some stuff
}, secondTask: {
// Do some other stuff
})
将不按顺序运行
例如,使用构建流插件:
build("job 1")
parallel
(
{build("job 2")}
{build("job 3")}
)
build("job 4")
如果有2个执行器,则可以并行运行2个作业。
如果希望并行运行更多作业,则需要增加执行器数量(通过节点配置)。
对于少量作业,这可能会奏效,但您可以很快引入混乱的链接作业定义
这就是为什么您还可以查看多作业插件的原因
它允许定义“阶段”。各阶段按顺序执行。
但每个“阶段”可以并行执行许多作业。
这允许执行以下工作流:“处理阶段1的并行作业(直到所有作业完成),然后继续执行阶段2”
- 发行
- 插件
- Github
parallel
(
{build("job 1", param1:"value1",param2:"value2")}
{build("job 2",param1:"value1")}
)
我认为这是为了构建流程插件,而不是工作流。