流水线基本结构
流水线基本结构
简介
在构建 CICD 的整个流程中,通常会有一个很明确的流程,每个流程节点有自己要进行的操作与步骤。如下图所示,其中主要有 4 个流程节点,而每个流程节点都有其需要完成的操作。
流水线的基本结构
如果需要组成一条完整的,可运行的流水线,至少需要以下几个部分:
接下来将分模块具体介绍这几个关键词
声明式(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 |
通常以上三个关键字是一起使用的,通过这三个关键字,即可确定一个流水线的顺序、包含的流程、以及每个流程中具体的步骤。
实践演练
接下来将使用学到的流水线基本结构,实现以上这张图的流水线流程,其中每个 stage 对应每个流程节点,每个 steps 对应其中具体的操作:
pipeline {
agent any
stages {
stage('提交代码PR'){
steps {
echo '代码扫描'
echo '单元测试'
echo '覆盖率统计'
echo '编译出包'
}
}
stage('环境部署'){
steps {
echo "使用Docker部署"
}
}
stage('自动化测试'){
steps {
echo "P0用例冒烟测试"
echo "Web自动化测试"
echo "接口自动化测试"
}
}
}
}