【原文链接】Gitlab CI/CD----DAG类型的流水线
DAG类型流水线全称Directed Acyclic Graph Piplines,即无环的有向图类型的流水线,简单点来说就是在基本类型的流水线的基础上通过needs关键字指定某个Job只依赖上一阶段的某一个Job,进而可以大幅提升流水线的执行效率。
编辑如下配置文件
stages:
- compile
- build
- deploy
- test
- release
compile_java:
stage: compile
script:
- echo "begin to compile java"
tags:
- shell_gitlab
compile_c:
stage: compile
script:
- echo "begin to compile c"
- sleep 10
tags:
- shell_gitlab
compile_node:
stage: compile
script:
- echo "begin to compile node"
tags:
- shell_gitlab
build_java:
stage: build
needs:
- compile_java
script:
- echo "begin to build java"
tags:
- shell_gitlab
build_c:
stage: build
needs:
- compile_c
script:
- echo "begin to c"
tags:
- shell_gitlab
build_node:
stage: build
needs:
- compile_node
script:
- echo "begin to node"
tags:
- shell_gitlab
deploy:
stage: deploy
script:
- echo "begin to deploy"
tags:
- shell_gitlab
test:
stage: test
script:
- echo "begin to test"
tags:
- shell_gitlab
release_java:
stage: release
script:
- echo "begin to releas javae"
tags:
- shell_gitlab
release_c:
stage: release
script:
- echo "begin to releas c"
tags:
- shell_gitlab
release_node:
stage: release
script:
- echo "begin to releas node"
tags:
- shell_gitlab
流水线执行结果如下,可以看到在此流水线中,compile_c的Job尚未执行完,而build_java和build_node都已经执行完成了。