目前,我有一个定义了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 /
那有可能吗?
感谢您的帮助。
答案 0 :(得分:0)
如果使用的是Gitlab版本> 12.2,则可以使用needs
关键字来创建有向无环图。
在这种情况下,您的.gitlab-ci.yml应该看起来像这样:
depB
将在depA
成功完成之后开始。 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
在文档中找到更多信息:
https://docs.gitlab.com/ee/ci/directed_acyclic_graph/