工具:
詹金斯版。1.470
Maven 2
颠覆
环境
假设我的构建有许多项目 AD。如图所示,依赖关系图存在。也就是说:B 依赖于 A 中的类,C 依赖于 B 中的类,D 依赖于 A 中的类。我们创建 jenkins 构建,以便他们将依赖于它们的构建称为构建后操作。
A
|--> B --> C
|--> D
每天晚上,我们在 Jenkins 中触发一个完整的构建(A 构建,触发器 B(触发器 C),触发器 D)。这很容易通过告诉 A 每晚构建,其余的级联来完成。
问题
但是,在提交时,我们希望构建曾经提交过的项目。
情况1:我们轮询存储库(或使用commit hooks,没有区别),发现有一个提交给B,然后B将构建,C将构建。 成功!
情况 2:我们轮询存储库并发现 B 和 C 在一次提交中被提交,然后 Jenkins 将尝试构建 B(触发 C 的构建),并构建 C(第二次构建)。失败。走着瞧吧?C 构建了两次,占用了宝贵的构建时间。 保持快速构建!
有谁知道在每个提交的构建管道中只触发最高项目的方法?
我想一个解决方案是一个复杂的 SVN 钩子,它确定每个管道中的最高项目......
- 情况 3:一次提交到 BC 和 D。SVN 钩子发现 C 依赖于 B。钩子调用特定于项目的链接来开始构建 B 和 D。
陷阱:非常复杂的 SVN 提交挂钩。必须维护 SVN 挂钩中的管道。
我觉得这是其他人遇到的问题。有没有 Jenkins 插件可以帮助解决这个问题?