在Jenkins中使用分支

在Jenkins中使用分支,jenkins,Jenkins,我们使用Perforce服务器作为SCM工具,并对所有SCM配置(签入、签出、同步等)使用scipts(构建步骤-->执行脚本)。也就是说,我们不打算使用任何Perforce插件 现在我们有四分之一的版本,所以每四个月左右,jenkins上运行的作业需要切换到不同的分支。作业配置在不同的分支之间或多或少保持相同,只是url发生了变化(可以使用简单的变量$branch来完成)。我们使用了一个参数化的构建,其中定义了一个用于选择分支的选择参数。 这很好,但我们需要在这方面做一些精细的改进 以下是问题

我们使用Perforce服务器作为SCM工具,并对所有SCM配置(签入、签出、同步等)使用scipts(构建步骤-->执行脚本)。也就是说,我们不打算使用任何Perforce插件

现在我们有四分之一的版本,所以每四个月左右,jenkins上运行的作业需要切换到不同的分支。作业配置在不同的分支之间或多或少保持相同,只是url发生了变化(可以使用简单的变量$branch来完成)。我们使用了一个参数化的构建,其中定义了一个用于选择分支的选择参数。 这很好,但我们需要在这方面做一些精细的改进

以下是问题:-

  • 作业的生成历史会被在不同分支上运行的生成阻塞。尽管我们有一个构建后groovy脚本,它将分支编号附加到构建作业的数量上,但我们希望有一个构建历史面板,显示分支所聚集的作业。 有点像这样:-

分行名称
  • #乔布

  • 默认情况下,参数化构建选项将最顶层的参数作为默认值,并在定期构建中使用该参数,因此我们最终只在一个分支上完成构建
我们还考虑了以下方法:-


每次分支出现时,动态地为每个分支创建新的作业集。但这将导致大量作业(#分支*每个分支的作业),如果分支上的作业之间的配置变化最小(即仅分支uri变化),这似乎不会产生效果,尽管它为作业提供了一个良好的结构化视图。因此,我们选择了参数化构建,但出现了上述两个问题。

使用一个参数化作业构建多个分支几乎总是以混乱告终,原因您已经提到过。我建议使用为您构建的每个分支生成单独的作业。如果作业除了分支名称之外是相同的,DSL代码将非常简单,并且如果需要更改公共配置设置,您将能够轻松更新所有作业。

hi gareth,请您建议jenkins的作业DSL插件的IDE支持。。