Git 生成/等待父作业最新版本

Git 生成/等待父作业最新版本,git,maven,jenkins,build,pipeline,Git,Maven,Jenkins,Build,Pipeline,我们在git上有maven项目,其结构为 -- pro-A -- pro-B -- pro-C pro-D -- pro-E 这些都是在git中有自己的回购协议的项目,在jenkins中有自己的构建管道,其阶段如下 build -- deploy to TEST -- run tests -- (manual tigger) deploy to QA 每个版本都部署到maven repo,并附加jenkins版本号

我们在git上有maven项目,其结构为

--
  pro-A
  --
    pro-B
    --
      pro-C
      pro-D
      --
        pro-E
这些都是在git中有自己的回购协议的项目,在jenkins中有自己的构建管道,其阶段如下

build  -- deploy to TEST -- run tests -- (manual tigger) deploy to QA
每个版本都部署到maven repo,并附加jenkins版本号,然后从主版本合并到发布分支,并用新版本号标记:例如1.0.9-649

因此,pro-A是所有项目的父级,pro-B仅依赖于pro-A,pro-C和pro-D处于同一级别,它们彼此不依赖,但依赖于pro-B,pro-E依赖于所有其他pro-A、B、C、D

推送更改时,gitlab会触发相应项目的构建。现在的问题是,当A和D发生变化,Ds构建在A之前触发时,很有可能构建失败,因为它取决于A的较新代码

我的问题是,是否可以暂停Ds构建,直到完成构建


我在想,在D的前一步中,尝试查看最新提交的时间戳是否比发布分支的时间戳晚,然后触发父级上的构建,但不知道如何触发?

有一种方法可以暂停D的构建,直到完成。您必须安装:“参数化触发器插件”。安装后,转到D的配置。在“构建”下,添加构建步骤,选择“触发/调用其他项目上的构建”

在此之后,将“A”放入“要生成的项目”,然后选中“阻止”,直到触发的项目完成其生成”。保存配置

这应该满足你的要求

让我想起了。应该可以让一个作业依赖于另一个作业。我们已经使用了“构建管道”,正如我提到的,镜像依赖项需求来构建管道很快就会变得非常混乱,这就是为什么我正在寻找另一种触发依赖项构建并等待其完成的方法