为了组织我们的构建、测试和部署配置,我们需要知道如何将作业放入各个阶段。
- 查看默认的构建阶段
- 声明自定义构建阶段和顺序
- 指定使用特定的 Runner
1. 默认的构建阶段
默认的构建阶段有三个阶段:
- build
- test
- deploy
阶段的执行顺序按照上面的排序执行。所有未指定的阶段默认为 test
阶段
job1:
stage: test
script: echo "test"
job2:
stage: build
script: echo "build"
job3:
stage: deploy
script: echo "deploy"
job4:
script: echo "job4"
2. 声明自定义阶段和顺序
- 每个阶段(stage)包含一个或多个 Jobs
- 阶段按其声明的顺序运行
- 任何作业失败都将阶段标记为失败
stages:
- build
- test
- review
- deploy
job1:
stage: test
script: echo "test"
job2:
stage: build
script: echo "build"
job3:
stage: deploy
script: echo "deploy"
job4:
script: echo "job4"
job5:
stage: review
script: echo "review"
3. 使用特定的 Runner
如果Runner 有多个可用,会使用轮询的方式。如果需要使用指定的 Runner 运行,可以使用 tag 标签。
stages:
- build
- test
- review
- deploy
job1:
stage: test
script: echo "test"
tags:
- aishangwei-group
- docker
job2:
stage: build
script: echo "build"
...
[info]如果有多个符合条件的 Runner ,也许是随便选择一个,目前没发现选择规律。
4. 代码构建示例
使用 feature-1 分支。
stages:
- build
build:
stage: build
image: harbor.xiodi.cn/tools/openjdk:11.0.6
tags:
- docker
- host20133-docker
script:
- chmod +x ./mvnw && ./mvnw package