Jenkins 构建监视新分支并构建命名分支

Jenkins 构建监视新分支并构建命名分支

我想配置一个 Jenkins 构建(“作业”),它将同时:

  1. 留意新分支并在它们出现时构建它们
  2. 根据请求构建命名分支或提交

我可以通过将“要构建的分支”设置为“**”来实现(1)

我可以通过使构建参数化并将“要构建的分支”设置为“$branch”来实现(2)(例如本教程

有没有办法可以同时完成这两件事?

动机

我对 (1) 的用例是,我希望在合并到主分支之前对“功能分支”进行测试,这样我们就可以在代码审查/拉取请求时看到更改是否通过了所有测试。

我对 (2) 的用例是,有时构建由于虚假原因(如不稳定的测试)而失败,我想重新运行它,或者旧分支可能已从历史记录的底部掉下来,我想重新运行其测试。

答案1

如果您有一个没有默认值的参数化构建,并且还将您的工作设置为轮询您的源代码控制,Build Triggers > Poll SCM那么它都应该可以工作。

重要的是,您的branch参数没有默认值,因此$branch当从轮询触发作业时为空,因为Branches to build将空值解释为任何分支。

(请注意,这将构建每个提交,而不仅仅是按照(1)的“新分支”,而且任何按照您建议设置的解决方案也将构建Branches to build**

答案2

我也有同样的情况,启用“使用工作区强制轮询”可以解决问题。jenkins-ci.org/browse/JENKINS-29896

相关内容