流水线的阶段、任务、系统环境变量

阶段

阶段,即 stage, 用于定义任务的执行阶段。

  1. 同一个执行阶段下的任务会被并行执行,
  2. 不同阶段的任务需要上一个阶段的所有任务执行成功后执行。

例如:

stages:
  - test
  - build
  - deploy

  1. 首先会并行执行所有 test 阶段的任务。
  2. 如果所有 test 阶段的任务执行成功,则接着并行执行所有 build 阶段的任务。
  3. 如果所有 build 阶段的任务执行成功,则接着并行执行所有 deploy 阶段的任务。
  4. 如果某个阶段的任务执行失败,其后执行阶段的所有任务将会被跳过。

任务

每个任务都是独立不重名的执行单元,拥有独立的执行环境,每个任务的行为都由一系列参数来指定。任务具有不同的类型,即 job_type,目前我们提供默认任务(default)、测试任务(test)、标准构建(image_build)、安全构建(lite_image_build)、发布到自有主机(DCS_deploy) 、发布到 DCE (DCE_deploy)、发布到测试环境(DCS_test_deploy)七种类型的任务。

任务名称不能是 envimagestagesversion 关键字,不能重名。

自定义任务

自定义任务只需指定基础镜像和几行 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 代码源提交后的哈希号

参考文档:

使用流水线构建镜像

设置持续集成(CI)

设置持续发布(CD)

编写流程定义 daocloud.yml 文件