我正在尝试使用 Jenkins 来保持我的主分支稳定,如此处所述。基本上,开发人员检查 push 到集成分支,只有 Jenkins 实例从集成合并到 master。我的项目由多个 RTL(verilog、vhdl 等)子组件组成,每个子组件都有自己的测试平台,可以单独构建。git-plugin 支持在运行测试之前根据更改的文件进行过滤,但我想要求所有更改的子组件在合并之前成功构建。即如果我的目录结构看起来像:
src/
A/
B/
C/
share/
test/
A/
B/
C/
如果只是 src/A/ 中的某些内容发生了变化,那么在将集成合并到 master 之前,只有测试 A 需要成功。如果 src/share/ 发生变化,则需要在将集成合并到分支之前运行测试 A、B 和 C。所有测试都可以并行运行。
我已经研究过使用 fork-plugin 和 parameterized-trigger-plugin,但看起来它们需要静态配置。有没有办法处理这种类型的动态依赖菱形,并且只有在一切都成功的情况下才让 Jenkins 将集成合并到 master 中?
提前致谢