流水线的阶段、任务、系统环境变量
阶段
阶段,即 stage
, 用于定义任务的执行阶段。
- 同一个执行阶段下的任务会被并行执行,
- 不同阶段的任务需要上一个阶段的所有任务执行成功后执行。
例如:
stages: - test - build - deploy
- 首先会并行执行所有 test 阶段的任务。
- 如果所有 test 阶段的任务执行成功,则接着并行执行所有 build 阶段的任务。
- 如果所有 build 阶段的任务执行成功,则接着并行执行所有 deploy 阶段的任务。
- 如果某个阶段的任务执行失败,其后执行阶段的所有任务将会被跳过。
任务
每个任务都是独立不重名的执行单元,拥有独立的执行环境,每个任务的行为都由一系列参数来指定。任务具有不同的类型,即 job_type
,目前我们提供默认任务(default
)、测试任务(test
)、标准构建(image_build
)、安全构建(lite_image_build
)、发布到自有主机(DCS_deploy
) 、发布到 DCE (DCE_deploy
)、发布到测试环境(DCS_test_deploy
)七种类型的任务。
任务名称不能是 env
, image
, stages
,version
关键字,不能重名。
自定义任务
自定义任务只需指定基础镜像和几行 shell 命令即可执行。
测试任务
测试任务主要用于执行一些单元测试或者集成测试,可以配置数据库服务,指定镜像初始化脚本,测试准备脚本,测试脚本等等。
标准构建
标准构建流程,是 Docker 原生构建方式,包含一个操作:从 Dockerfile 构建镜像。这是我们常用的镜像构建功能。
安全构建
Docker 镜像会将 Dockerfile 中每一步结果保存进其 layer ,如果是从源码构建镜像的话会将代码留在镜像中。为了解决这种问题 DaoCloud 推出了「安全镜像」构建功能。
安全镜像构建流程包含三个步骤:代码编译、文件提取、打包镜像。通过分离编译和打包,产生一个安全、精巧、不含源代码的生产级别镜像。
请参考 构建安全镜像
发布到自有主机、发布到 DCE、发布到测试环境
通过配置不同的发布任务,我们可以将上个阶段任务构建出的镜像发布到您的自有主机,您的 DCE 集群,或者云端测试环境上。
系统环境变量
我们提供如下系统环境变量。这些环境变量会自动注入到自定义任务和测试任务的环境变量、标准与安全构建任务的构建参数中。
DAO_PIPELINE_ID | 任务的流水线记录 ID |
DAO_JOB_ID | 任务 ID |
DAO_JOB_NAME | 任务名称 |
DAO_JOB_STAGE | 任务的执行阶段 |
DAO_COMMIT_BRANCH | 代码源提交时的分支 |
DAO_COMMIT_TAG | 代码源提交的标签 |
DAO_COMMIT_SHA | 代码源提交后的哈希号 |
参考文档: