如何在 Jenkins 脚本管道中创建并行阶段?

How can I create parallel stages in Jenkins scripted pipeline?

我正在尝试在我的 Jenkins 管道代码中实现并行化,我可以在其中并行地 运行 两个阶段。我知道这在声明性管道中是可能的,但我使用的是脚本化管道。

我试图通过做这样的事情来实现这一点:

parallel(
    stage('StageA') {
        echo "This is branch a"
    },
    stage('StageB') {
        echo "This is branch b"
    }
  )

当我 运行 this 和在 Blue ocean 中查看 this 时,这些阶段不会 运行 并行,而是 StageB 在 StageA 之后执行。 是否可以在脚本化的詹金斯管道中有并行阶段?如果可以,怎么做?

为脚本管道尝试此语法:

            parallel(
                    "StageA": {
                        echo "This is branch a"
                    },
                    "StageB": {
                        echo "This is branch b"
                    }
            )

Blue Ocean里面应该是这样的,这就是你所期待的吧?

如果你想在经典视图中查看阶段(和控制台输出),你可以像这样使用阶段:

 parallel(
                        "StageA": {
                            stage("stage A") {
                                echo "This is branch a"
                            }
                        },
                        "StageB": {
                            stage("stage B") {
                                echo "This is branch b"
                            }
                        }
                )

这对我有用

    stage('Check code quality') {
      parallel {
        stage('Run prospector') {
          when {
            expression { params.SKIP_PROSPECTOR == false }
          }

          steps {
            checkout scm
            sh 'echo "Running prospector..."'
            sh 'make dockerized-run-prospector'
          }
        }

        stage('Run Tests') {
          when {
            expression { params.SKIP_TESTS == false }
          }

          steps {
            checkout scm
            sh 'echo "Running tests..."'
            sh 'make dockerized-test'
          }
        }
      }
    }

这会在父阶段下并行运行阶段。 Jenkins blue 是这样显示的