【发布时间】:2013-03-04 11:34:16
【问题描述】:
我有以下构建场景:
项目C依赖项目B,项目B又依赖项目A
项目 X 依赖于 C,项目 Y 依赖于 B,项目 Z 依赖于 A。
还有许多其他具有依赖关系的模块,但最“复杂”的构建关系是与项目 X。为了在 Jenkins 中进行设置,我使用了参数化触发器插件,其中“阻塞直到触发的项目完成构建” “ 选项。每个可构建模块都有自己的 Jenkins 作业,插件用于阻止必要的依赖构建作业。
我在此设置中遇到了 2 个问题。
- 项目 A 和 B 多次构建,因为它们位于项目 X、Y、Z 等的传递依赖链中。
- Jenkins 有时会完全阻止构建项目,因为针对作业 X、Y、Z 等的构建已填满所有可用的执行程序(由 scm 更改触发),并且相关项目在队列中等待构建.
我正在寻找有关如何为此类构建环境配置 Jenkins 的建议。我是 Jenkins 的新手,所以我不知道有哪些选项可以解决这个问题。
编辑:
所有作业都由 SCM 更改触发。依赖项目也由 Parameterized Trigger Plugin 触发; “阻止直到触发的项目完成构建”选项。
【问题讨论】:
-
您能否列出您用于触发每个构建的机制 - SCM 更改、使用 Ivy 插件之类的依赖项更改、上游构建触发等?如果某些构建是由多种机制触发的,您可能可以简化触发器。
-
@gareth_bowles 已编辑问题。