我有以下构建场景:
项目 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 触发;“阻止直到触发的项目完成构建”选项。