我们在git上有maven项目,结构为
--
pro-A
--
pro-B
--
pro-C
pro-D
--
pro-E
这些都是项目,在git中有自己的repo,在jenkins中有自己的构建管道,阶段如下
build -- deploy to TEST -- run tests -- (manual tigger) deploy to QA
每个构建都被部署到maven repo,并附加了jenkins构建号,并合并以从master和tag中释放分支与新版本号:例如1.0.9-649
所以,亲A是所有项目的父母,亲B只依靠亲A,亲C和亲D处于同一水平,他们不依赖彼此但依赖于pro-B,pro-E依赖于所有其他pro-A,B,C,D
当推送更改时,gitlab会触发相应项目的构建。现在的问题是,当A和D发生变化并且Ds构建被触发之前,很有可能构建失败,因为它依赖于较新的A代码。
我的问题是,是否可以暂停Ds构建直到A完成构建?
我在考虑D之前的步骤,试着看看最新的提交是否有比发布分支更晚的时间戳然后触发父母的构建,但是不知道怎么做?
答案 0 :(得分:1)
有一种方法可以暂停D的构建直到A完成。您必须安装:"参数化触发插件" 。安装完成后,转到D的配置。在构建,添加构建步骤下,选择"在其他项目上触发/调用构建" 。
之后将" A" 放入"要构建的项目" ,然后检查"阻止直到被触发的项目完成他们的构建" 。保存配置。
这应该符合您的要求。