我们在这个庄园中有一个 Subversion 存储库设置:
http://svn.vegicorp.net/svn/toast/api/trunk
http://svn.vegicorp.net/svn/toast/api/1.0
http://svn.vegicorp.net/svn/toast/data/trunk
http://svn.vegicorp.net/svn/toast/data/branches/1.2
http://svn.vegicorp.net/svn/toast/data/branches/1.3
我为整个toast项目(包括所有子项目)设置了 Jenkins Multi-Pipeline 构建——每个子项目都是一个 jarfile。我想要的是让 Jenkins 每次在其中一个 toast 项目中更改任何文件时启动一个新构建。该项目应该重建。这样,如果我们在 toast 中创建一个新的子项目或在其中一个toast子项目中创建一个新分支,Jenkins 将自动为此创建一个新的构建。
这是我的 Jenkins多分支设置:
分支来源
颠覆
- 项目存储库基础:
http://svn.vegicorp.net/svn/toast
- 凭证:
builder/*****
- 包括分支:
*/trunk, */branches/*
- 排除分支:
*/private
- 属性策略:所有分支获得相同的属性
构建配置
- 模式:由 Jenkinsfile
构建触发器(未选择)
- 远程触发构建(例如,从脚本) 功能帮助:触发 * 远程构建(例如,从脚本)
- 定期构建功能帮助:定期构建
- 在提升另一个项目时构建
- Maven Dependency Update Trigger 功能帮助:Maven Dependency Update Trigger
- 如果没有,则定期运行
请注意,Build Triggers列表不包括Poll SCM。存储库中的更改不会触发任何构建。Jenkinsfiles
位于每个子项目的根目录。如果我强制重新索引,则会构建所有更改的子项目并找到所有新分支。我最初确实定期检查并每分钟重新索引以获取更改,但这很笨拙,似乎导致詹金斯消耗内存。
在 SCM 更改上触发构建应该是非常基本的,但我没有看到与标准作业一样的配置参数。我似乎也无法进入子项目并将其设置为触发构建。
一定有一些非常非常简单的东西我错过了。
配置:
- 詹金斯 2.19
- 管道 2.3
- 管道 API:2.3
- 管道 Groovy:2.17
- 管道作业:2.6
- 管道 REST API 插件:2.0
- 管道共享 Groovy 库:2.3
- 管道:舞台视图插件:1.7
- 管道:支持 API 2.2
- 单片机 API 插件:1.2