我想配置一个单一的 Jenkins 构建(“工作”),它会:
- 注意新的分支并在它们出现时构建它们
- 根据请求构建命名分支或提交
我可以通过将“要构建的分支”设置为“**”来实现(1)
我可以通过使构建参数化并将“要构建的分支”设置为“$branch”来实现(2)(如本教程)
有没有办法同时做到这两点?
动机
我对 (1) 的用例是我希望在合并到 master 之前测试“功能分支”,因此我们可以在代码审查/拉取请求时查看更改是否通过了所有测试。
我对 (2) 的用例是,有时构建会由于虚假原因(如不稳定的测试)而失败,我想重新运行它,或者旧分支可能已经从历史的底部掉了下来,我想重新-运行它的测试。
如果您有一个没有默认值的参数化构建,并且还将您的工作设置为轮询源代码控制,
Build Triggers > Poll SCM
那么它应该一切正常。重要的是,您的
branch
参数没有默认值,以便$branch
在从轮询触发作业时为空,因为Branches to build
将空值解释为表示任何分支。(请注意,这将构建每个提交,而不仅仅是(1)中的“新分支”,而且任何设置为您建议的解决方案也是如此
Branches to build
。**
)我也是同样的情况,启用“使用工作区强制轮询”将解决问题.jenkins-ci.org/browse/JENKINS-29896