Jenkins在Commit Hook上进行部分构建/模块化构建

Thu*_*toe 6 continuous-integration hudson build svn-hooks jenkins

工具:
Jenkins ver.1.470
Maven 2
Subversion

环境

假设我的构建有许多项目AD.依赖图存在,如图所示.也就是说:B依赖于A中的类,C依赖于B中的类,D依赖于A中的类.我们创建jenkins构建,以便它们将构建依赖于它们作为构建后动作.

A
| - > B - > C
| - > D.

每天晚上,我们触发Jenkins的完整构建(A构建,触发B(触发器C),触发器D).这很容易通过告诉A每晚建造,其余的瀑布.

问题

但是,在提交时,我们希望构建一次提交的项目.

  • 情况1:我们轮询存储库(或者使用提交钩子,它没有区别)并且发现存在对B的提交,然后B将构建并且C将构建. 成功!

  • 情况2:我们轮询存储库并发现B和C在一次提交中被提交,然后Jenkins将尝试构建B(触发C的构建),并构建C(第二次构建).失败.走着瞧吧?C建成两次,占用了宝贵的构建时间. 保持快速构建!

有没有人知道只在每个提交的构建管道中触发最高项目的方法?

我想一个解决方案是一个复杂的SVN钩子,它确定每个管道中的最高项目......

  • 情况3:在一次提交中提交BC和D. SVN钩子发现C依赖于B.钩子调用项目特定的链接来启动B和D的构建.

陷阱:非常复杂的SVN提交挂钩.必须维护SVN钩子中的管道.

我觉得这是其他人遇到的问题.是否有一个Jenkins插件可以帮助解决这个问题?

Rob*_*anz 1

让 jenkins 等待构建直到 c 依赖的构建完成是一个想法。这是作业配置中的一个标志,用于执行此操作。但你必须为每项工作执行此操作。顺便说一句......还有另一个标志要求詹金斯等待构建,直到依赖作业完成。