GitLab CI:如何将两个依赖关系管道设置为并行运行?

GitLab CI:如何将两个依赖关系管道设置为并行运行?,gitlab,gitlab-ci,Gitlab,Gitlab Ci,目前,我有一个定义了4个不同阶段的管道,用于为我的项目构建依赖关系: stages: - dependencies-A - dependencies-B - dependencies-C - dependencies-D - build 因此,管道中的作业现在运行如下: A -> B -> C -> D -> build 实际上,B依赖于A,D依赖于C。子管道A->B和C->D是独立的,我想并行运行这两个子管道,以加快构建。因此,这样做: A -&

目前,我有一个定义了4个不同阶段的管道,用于为我的项目构建依赖关系:

stages:
  - dependencies-A
  - dependencies-B
  - dependencies-C
  - dependencies-D
  - build
因此,管道中的作业现在运行如下:

A -> B -> C -> D -> build
实际上,B依赖于A,D依赖于C。子管道
A->B
C->D
是独立的,我想并行运行这两个子管道,以加快构建。因此,这样做:

A -> B \
         build
C -> D /
那有可能吗


感谢您的帮助。

如果您使用的是Gitlab version>12.2,您可以使用
needs
关键字创建有向无环图

在本例中,您的.gitlab-ci.yml应该如下所示:

depA
成功完成后,这里将启动
depB
depC
depD
阶段也是如此。
build
阶段将在所有其他阶段完成后运行

stages:
  - dependencies-A-C
  - dependencies-B-D
  - build

depA:
  stage: dependencies-A-C

depB:
  stage: dependencies-B-D
  needs: ["depA"]

depC:
  stage: dependencies-A-C

depD:
  stage: ependencies-B-D
  needs: ["depC"]

build:
  stage: build
在文档中查找更多信息:


不仅可以使用需求,如Murli的回答中所述,而且(2021年5月),您可以看到这些管道,并直观地确认它们将并行运行

在管道图中显示作业相关性 完整管道图提供CI/CD管道中所有作业的可视化表示,并按阶段分组。
此可视化可帮助您跟踪作业的进度,并设置作业执行顺序的期望值

通过引入,您可以创建一个有向无环图,该图允许作业比仅按阶段配置时更早开始运行

但是,在查看管道图时,这会产生歧义,因为很难判断作业的运行顺序

在本版本中,当作业顺序反映作业之间的
关系时,您现在可以按作业依赖关系查看管道

我们还添加了作业之间的链接,以查看特定作业开始之前需要完成哪些作业。使用
needs:
关键字时,您将更容易跟踪和理解作业依赖关系和预期的运行顺序

见和


看看这个:非常感谢,@MurliPrajapati!!看起来很有希望!:)+1.非常感谢,@MurliPrjapati!然而,从我在你提供的第二个链接中的文档中看到的情况来看,不应该是同一阶段的工作吗?另外,从我所读到的,我认为当使用
需要:
时,将不再需要
阶段:
。是吗?是的。正确的观点。你们有可能把A和C放在同一个阶段吗<代码>阶段是必需的。是的,前提是B在A之后构建,D在C之后构建。因此,两个子管道
A->B
C->D
可以在同一阶段并行构建。然后,stage
build
将需要全部构建。@rmbianchi更新了答案中的yml。非常感谢,@MurliPrajapati!:)经核准的!