从具有不同参数的相同作业在 Jenkins 中创建单独的管道

Create separate pipelines in Jenkins from same jobs with different parameters

我目前正在 Jenkins 中设置几个持续集成管道。我已经安装了所有用于构建和可视化管道的插件,并让它们正常工作,但是作业配置中有很多冗余。

我有 2 个 Git 分支,master 和 develop,每个都有一个管道。当对相应分支进行提交时,它们会被触发。每个管道必须执行相同的任务:

目前,我每个作业都有 2 份副本,一份用于 master,一份用于开发。

我知道我可以参数化这些作业,但如果我这样做,据我所知,它们将在 Build Pipeline 和 Delivery Pipeline 插件视图中显示为一个管道,然后变得很难看到每个管道的单独状态。

有谁知道如何使用相同的作业但使用不同的参数创建单独的管道?也欢迎任何替代方法的建议。

您可以使用 Job DSL Plugin 在脚本中维护作业配置并从该配置生成多个管道。

生成两个管道的作业 DSL 脚本如下所示:

['master', 'develop'].each { branch ->
  job("${branch}-compile") {
    scm {
      git("https://repo.example.org/foo.git", branch)
    }
    steps {
      maven('verify')
    }
    publishers {
      downstream("${branch}-provision")
    }
  }

  job("${branch}-provision") {
    // ...
  }

  buildPipelineView("${branch}-pipeline") {
    selectedJob("${branch}-compile")
  }
}