我正在将持续集成系统从Teamcity迁移到Jenkins.我们为我们所有的项目都有一个svn存储库,如下所示:
project/dev_db_build (folder) project/module1 (folder) project/module2 (folder) projets/pom.xml
为了在CI服务器上构建数据库,我使用url project/dev_db_build并且可以在有更改时使用此URL来触发构建.
对于构建应用程序,我使用url项目/所以如果我轮询它并且对dev_db_build进行更改应该忽略并在db_build成功后触发应用程序构建.
在团队中,我使用了"触发模式".但在詹金斯有很多触发插件https://wiki.jenkins-ci.org/display/JENKINS/Plugins#Plugins-Buildtriggers - 我调查了其中一些并且找不到合适的插件.
理想情况下,您应该使用@Mike建议的post-commit钩子,而不是轮询.否则,在配置Jenkins作业时,在"源代码管理"下选择"Subversion",会出现一个高级按钮.点击此按钮会显示许多选项,包括"排除的区域"
如果设置,并且Jenkins设置为轮询更改,Jenkins将在确定是否需要触发构建时忽略此列表中的所有文件和/或文件夹.每个排除使用正则表达式模式匹配,并且必须用新行分隔.
/trunk/myapp/src/main/web/.*.html
/trunk/myapp/src/main/web/.*.jpeg
/trunk/myapp/src/main/web/.*.gif
上面的示例说明如果只有html/jpeg/gif文件已提交给SCM,则不会发生构建.有关正则表达式的更多信息,请访问此处.
在您的情况下,您可以将"排除的区域"设置为类似的内容
/project/dev_db_build/.*