目前,我定义了一个包含 4 个不同阶段的管道来为我的项目构建依赖项:
stages:
- dependencies-A
- dependencies-B
- dependencies-C
- dependencies-D
- build
Run Code Online (Sandbox Code Playgroud)
因此,管道中的作业现在运行如下:
A -> B -> C -> D -> build
Run Code Online (Sandbox Code Playgroud)
实际上,B 依赖于 A,D 依赖于 C。子管道A->B是C->D独立的,我想并行运行这两个子管道,以加快构建速度。那么,这样:
A -> B \
build
C -> D /
Run Code Online (Sandbox Code Playgroud)
这可能吗?
感谢您的热心帮助。
Mur*_*ati 11
如果您使用的 Gitlab 版本 > 12.2,您可以使用needs关键字创建有向无环图。
在这种情况下,您的 .gitlab-ci.yml 应如下所示:
成功完成后将在此处depB开始。和阶段depA也是如此。
阶段将在所有其他阶段完成后运行。 depCdepDbuild
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
Run Code Online (Sandbox Code Playgroud)
在文档中查找更多信息:
https://docs.gitlab.com/ee/ci/directed_acirclic_graph/
https://docs.gitlab.com/ee/ci/yaml/README.html#needs
| 归档时间: |
|
| 查看次数: |
18340 次 |
| 最近记录: |