从具有不同参数的相同作业在 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")
}
}
我目前正在 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")
}
}