Jenkins工作流并行步骤和Jenkins配置

Jenkins工作流并行步骤和Jenkins配置,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我目前正在研究如何最好地在Jenkins工作流脚本中使用并行步骤,我只是想澄清我对如何工作的理解 parallel(firstTask: { node { // Do some stuff } }, secondTask: { node { // Do some other stuff } }) 在这种情况下,每个任务是否都会因为其包含在节点中而使用一个执行器?如果没有节点块,任务还会并发运行吗 大概最有效的解决方案是在一个单独的从

我目前正在研究如何最好地在Jenkins工作流脚本中使用并行步骤,我只是想澄清我对如何工作的理解

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
大概最有效的解决方案是在一个单独的从机上运行每个节点

这是不容易回答的。这取决于项目

当开发人员希望快速获得构建工件时,通常使用面向性能的Jenkins设置

当达到定义的最大工作负载时,我会尝试使用一个盒子,并引入下一个从属,目标是减少总构建时间。换句话说:您可以关注CPU利用率并测量/比较构建时间,在尝试不同的Jenkins设置时,可能是A/B测试。

试试这个,

还可以使用传递的参数运行并行作业

例如:

   parallel
   (
    {build("job 1", param1:"value1",param2:"value2")}
    {build("job 2",param1:"value1")}
   )

我认为这是为了构建流程插件,而不是工作流。