从某种抽象层次上讲,部署流水线(Deployment pipeline)是指从软件版本控制库到用户手中这一过程的自动化表现形式。
Jenkins 2.x 支持 pipeline as code,可以通过”代码“来描述部署流水线。
使用"代码”而不是UI的意义在于:
总结:创建Jenkins item尽量使用 pipeline 风格。是趋势。
Jenkinsfile就是一个文本文件,也就是部署流水线概念在Jenkins中的表现形式。像Dockerfile之 于Docker。所有部署流水线的逻辑都写在Jenkinsfile中。 建议把Jenkinsfile跟项目源码一块加入到版本控制中,这样方便项目成员了解构建构建和流程。当然出于安全,有些环境变量和参数等可以管理在Jenkins管理平台上。具体后续会有介绍。
写pipeline就是写Groovy代码,Jenkins pipeline 其实就是基于Groovy语言实现的一种DSL。 Jenkins pipeline支持两种语法,声明式和脚本式,前者简单,结构化好,后者灵活,扩展性好,但是需要对Groovy比较熟练。 声明式语法更符合阅读习惯,所有示例都会使用声明式语法。
pipeline的内容包含执行编译、打包、测试、输出测试报告等步骤。
例1 一个最简单的声明式pipeline
pipeline {
agent any
# stages 包含一个或多个阶段(stage)的容器
stages {
# stage 阶段,pipleline流水线由一个或多个阶段(stage)组成,每个阶段必须有名称,这里build就是此阶段的名称
stage('build') {
# steps,阶段中的一个或多个具体步骤(step)的容器
steps {
# 这是是具体的步骤,真正”做事“的,不可再拆分的最小操作
echo "hello world"
}
}
}
}
流水线 流水线语法