一、Jenkins Pipeline 语法入门¶
作为一种流行的持续集成和交付工具,Jenkins有多种方式来实现交付流水线。其中, Jenkins Pipeline是一种比较流行的方式,它提供了一个DSL(Domain Specific Language 的缩写,中文翻译为:领域特定语言)来描述交付流水线。
官方:Pipeline Syntax (jenkins.io)
3.1 什么是 Jenkins Pipeline¶
Jenkins Pipeline是一种基于Groovy编写的DSL,它可以描述交付流水线。Pipeline支持串行和并行的执行,可以将多个任务组合成一个流水线。Pipeline也支持将上下文传递给不同的阶段,使得阶段之间的数据共享变得更加容易。
Pipeline提供了三种编写Pipeline的方式:
Declarative Pipeline:是基于YAML编写的声明式语言,它可以更容易地描述交付流水线。
Scripted Pipeline:是基于Groovy编写的脚本语言,它是一种灵活的方式来描述交付流水线。
Jenkinsfile:是一种将Pipeline脚本保存为Jenkins源代码管理系统中的文件的方式。
3.2 Declarative Pipeline(声明式)流水线¶
3.2.1 特点¶
- 最外层必须由pipline{ //do something }来进行包裹
- 不需要分号作为分隔符,每个语句必须在一行内
- 不能直接使用groovy语句(例如循环判断等),需要被script {}包裹
3.2.2 示例说明¶
下面是一个简单的Pipeline脚本示例:
pipeline{ // 最外层必须由pipeline包裹
agent any // agent表示在哪个节点执行
stages{
stage("build"){
steps{ // 具体执行步骤
echo "Build..."
}
}
stage("test"){
steps{
echo "Test..."
}
}
stage("depoly"){
steps{
echo "Deployment..."
}
}
}
post{ // 最后执行
success{ // 测试成功时执行(需要安装 Email Extension 插件)
emailext body: 'Build succeeded!', subject: 'Build Success', to: 'xx@example.com'
}
failure{ // 失败时会执行
emailext body: 'Build failed!', subject: 'Build Failure', to: 'xx@example.com'
}
}
}
在这个示例中,我们使用了三个阶段:build、test 和 deploy。
每个阶段都是一个stage块。在每个阶段中,我们可以使用Jenkins提供的一些API来执行任务,例如sh命令来执行shell脚本或者Jenkins提供的其他插件。
下面进行详细演示操作:
1、安装插件Email Extension
(1)打开浏览器输入http://jenkins.zhang-qing.com/,输入账号root和密码root登录(这是我设置的账号和密码,实际需要根据你自己设计的账号和密码来定)
(2)依次点击【系统管理】-【插件管理】

(3)点击【Available plugins】后,勾选Email Extension,点击【Download now and install after restart】

(4)勾选【安装完成后重启Jenkins(空闲时)】

2、新建构建任务TEST-Declarative-Pipeline
(1)点击【新建任务】

(2)填写任务名称-TEST-Declarative-Pipeline

(3)复制下面到脚本里面后,点击【保存】
pipeline{ // 最外层必须由pipeline包裹
agent any // agent表示在哪个节点执行
stages{
stage("build"){
steps{ // 具体执行步骤
echo "Build..."
}
}
stage("test"){
steps{
echo "Test..."
}
}
stage("depoly"){
steps{
echo "Deployment..."
}
}
}
post{ // 最后执行
success{ // 测试成功时执行(需要安装 Email Extension 插件)
emailext body: 'Build succeeded!', subject: 'Build Success', to: 'xx@example.com'
}
failure{ // 失败时会执行
emailext body: 'Build failed!', subject: 'Build Failure', to: 'xx@example.com'
}
}
}

3、开始构建
(1)点击【立即构建】

(2)点击【Console Output】查看构建详细信息。这里因为邮件地址错误,所以会失败。但是不影响具体演示效果
