【原文链接】Gitlab CI/CD----基本类型的流水线
(1)流水线定义多个阶段,每个阶段有一个Job,.gitlab-ci,yml 配置如下
stages:
- compile
- build
- deploy
- test
- release
compile:
stage: compile
script:
- echo "begin to compile"
tags:
- shell_gitlab
build:
stage: build
script:
- echo "begin to build"
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:
stage: release
script:
- echo "begin to release"
tags:
- shell_gitlab
流水线如下图所示,按照阶段顺序执行
(2)流水线中有多个阶段,每个阶段中可能有多个任务,.gitlab-ci.yml配置如下所示。
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
流水线如下图所示,此时按照阶段执行,即上一个阶段的Job全部执行完成后,才会执行下一个阶段的Job