Gitlab CI/CD----DAG类型的流水线

【原文链接】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都已经执行完成了。

猜你喜欢

转载自blog.csdn.net/redrose2100/article/details/130996219
今日推荐