Skip to content

流水线基本结构

流水线基本结构

简介

在构建 CICD 的整个流程中,通常会有一个很明确的流程,每个流程节点有自己要进行的操作与步骤。如下图所示,其中主要有 4 个流程节点,而每个流程节点都有其需要完成的操作。

uml diagram

流水线的基本结构

如果需要组成一条完整的,可运行的流水线,至少需要以下几个部分:

Declarative 语句树

接下来将分模块具体介绍这几个关键词

声明式(Declarative) Pipeline

必须包含在一个 pipeline 块内如下所示:

pipeline {

}
节点 agent

agent 主要决定流水线在哪里运行,也是必须指定的一个参数信息。

pipeline {
  agent any
}

其中 any 代表任意一个节点,agent 还可以做很多额外的配置,相关的具体配置,参考流水线节点管理

stages 、 stage、steps

stages 、 stage、steps 在 pipeline 中为必须要存在的,且均不需要参数信息的三个声明关键字:

名称 作用 其他要求
stages 包含一个或多个 stage 的序列,用来控制 stage 的顺序。 每个 Pipeline 代码区间中必须只有一个 stages
stage 其作用主要为定义某个流程,以及该流程中的步骤 包含在 stages 中 ,需要定义 stage 的名字
steps 具体的执行步骤 包含在 stage 代码区间中,一个 stage 只有一个 steps

通常以上三个关键字是一起使用的,通过这三个关键字,即可确定一个流水线的顺序、包含的流程、以及每个流程中具体的步骤。

实践演练

uml diagram

接下来将使用学到的流水线基本结构,实现以上这张图的流水线流程,其中每个 stage 对应每个流程节点,每个 steps 对应其中具体的操作:

pipeline {
    agent any
    stages {
        stage('提交代码PR'){
            steps {
                echo '代码扫描'
                echo '单元测试'
                echo '覆盖率统计'
                echo '编译出包'
            }
        }
        stage('环境部署'){
            steps {
                echo "使用Docker部署"
            }
        }
        stage('自动化测试'){
            steps {
                echo "P0用例冒烟测试"
                echo "Web自动化测试"
                echo "接口自动化测试"
            }
        }
    }
}