我正在将持续集成系统从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 - 我调查了其中的一些并且找不到合适的插件。
答案 0 :(得分:9)
理想情况下,您应该使用@Mike建议的提交后挂钩,而不是轮询。否则,在配置Jenkins作业时,在“源代码管理”下选择“Subversion”,会出现一个高级按钮。单击此按钮会显示许多选项,包括“排除的区域”
如果设置,并且Jenkins设置为轮询更改,Jenkins将忽略 确定构建时,此列表中的任何文件和/或文件夹 需要被触发。每个排除使用正则表达式模式 匹配,必须用新行分隔。
/中继/ MyApp的/ SRC /主/网络/.*。HTML
/中继/ MyApp的/ SRC /主/网络/.*。JPEG
/中继/ MyApp的/ SRC /主/网络/.*。GIF
上面的例子说明了如果只有html / jpeg / gif文件 一直致力于SCM的构建不会发生。更多信息 可以找到正则表达式here。
在您的情况下,您可以将“排除的区域”设置为
/project/dev_db_build/.*
答案 1 :(得分:2)
您是否有能力编辑Subversion挂钩?我建议您不要让Jenkins服务器轮询SVN,而是通过post-commit
挂钩让SVN调用Jenkins,以便在开发人员提交时自动启动构建。这样可以减轻Jenkins和SVN服务器的负载,并且在构建开始之前轮询间隔不会等待很长时间。