为多个可选阶段运行并行性

时间:2018-05-09 21:22:58

标签: jenkins parallel-processing

我正在使用Jenkins声明性管道,目前正在尝试并行化部分工作流程。我的管道目前的工作方式是构建数据库有多个阶段,每个阶段都有if子句依赖于传递给构建的参数。接下来,构建应用程序有多个阶段,其中还有基于params的子句。我试图将这两个阶段链并列,但不能弄清楚它是否可能使用声明性语法,因为我要么必须将所有阶段并行,这是一个不行,因为与每个任务相关的后续阶段依赖于早期阶段,或者将这些阶段嵌套到一些似乎不受声明性语法支持的父阶段。我想做这样的事情。任何有用的信息都将受到赞赏。

pipeline{
    agent any
    stages{
        stage("Build Systems"){
            parallel{
                stage("Build Database"){
                        stage("DB STEP 1"){
                            steps{
                                echo 'building databse step 1'
                            }
                        }
                        stage("DB STEP 2"){
                            steps{
                                echo 'building databse step 2'
                            }
                        }
                    }
                }
                stage("Build Application"){
                        stage("APP STEP 1"){
                            steps{
                                echo 'building application step 1'
                            }
                        }
                        stage("APP STEP 2"){
                            steps{
                                echo 'building application step 2'
                            }
                        }
                    }
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我相信这是通过Declarative Pipeline 1.3: Sequential Stages实现的。

  

一个常见的用例是在多个平台上运行构建和测试。
  您已经可以使用并行阶段执行此操作,但是现在您可以在每个并行分支中运行多个阶段,从而无需查看日志即可确切了解当前哪个步骤在哪里运行,从而更直观地了解管道的进度等。

https://jenkins.io/images/post-images/2018-07-02/sequential_stages.png