Jenkins 流水线语法 01 pipeline作业
什么是Pipeline ?
Pipeline
Jenkins的核心是Pipeline(流水线项目),实现了Pipeline As Code。即我们将构建部署测试等步骤全部以代码的形式写到Jenkinsfile中。Jenkins在运行Pipeline任务的时候会按照Jenkinsfile中定义的代码顺序执行。写Jenkinsfile是一项很重的工作,如果稍不注意很容易造成Jenkins的流水线任务失败。Jenkinsfile类似于Dockerfile,具有一套特定的语法。
Stage
在Jenkins pipeline中,一条流水线是由多个阶段组成的,每个阶段一个stage。例如:构建、测试、部署等等。
Agent
Jenkins采用分布式架构,分为server节点和agent节点。server节点也是可以运行构建任务的,但我们一般使其主要来做任务的调度。(毕竟server节点挂了就都...)agent节点专门用于任务的执行。随着现在容器的盛行,我们可以将server节点和agent节点在容器或者基于Kubernetes中部署。关于agent节点借助容器可以实现动态的资源分配等等好处。agent节点可以分为静态节点和动态节点。
- 静态节点是固定的一台vm虚机或者容器。
- 动态节点是随着任务的构建来自动创建agent节点。
我们可以根据地铁线路图来理解pipeline :
- pipeline 等同于 13号线
- agent 等同于 13号线地铁
- stages 等同于 13号线完整的站点路线
- stage 等同于 13号线中的一个站点
Pipeline作业
安装Pipeline插件
在创建Pipeline类型的作业的时候,需要提前安装好pipeline插件,不然可能会出现找不到pipeline类型的作业。
进入插件管理, 搜索关键字"pipeline" 。安装后重启一下。
当Jenkins重启成功后,我们创建一个流水线类型的作业。
点击创建,会进入作业的配置页面。此时我们可以对比一下pipeline类型的项目和自由风格的项目的区别。
Jenkins file两种不同的管理方式
一种是将代码写到pipeline里面去运行,还有一种是下载这个脚本,比如将脚本放在了版本控制库里面,在这里面。一种是直接写到作业里面,还有一个是放在版本系统里面去做控制。
与自由风格项目对比
流水线类型作业
自由风格类型作业
总结: General和构建触发器都是相同的, 自由风格的作业需要在UI页面配置详细的构建过程和构建后操作,而流水线类型的作业是直接将构建过程和操作放到了"流水线"中配置,以代码的方式描述流水线。
流水线回放功能(调试pipeline)
借助回放可以修改上次构建所使用的Jenkinsfile代码, 进行更改后可以立即运行进行调试。
Jenkinsfile
Jenkinsfile的是实现Pipeline as Code的核心功能。 该文件用于描述流水线的过程。以下是一个简单的实例:
pipeline{
//指定运行此流水线的节点
agent { node { label "build"}}
//管道运行选项
options {
skipStagesAfterUnstable()
}
//流水线的阶段
stages{
//阶段1 获取代码
stage("CheckOut"){
steps{
script{
println("获取代码")
}
}
}
stage("Build"){
steps{
script{
println("运行构建")
}
}
}
}
post {
always{
script{
println("流水线结束后,经常做的事情")
}
}
success{
script{
println("流水线成功后,要做的事情")
}
}
failure{
script{
println("流水线失败后,要做的事情")
}
}
aborted{
script{
println("流水线取消后,要做的事情")
}
}
}
}
- 使用agent{},指定流水线要运行的节点(可以使用名称或者标签)
- 指定options{} 定义流水线运行时的一些选项
- 指定stages{}(stages包含多个stage,stage包含steps。是流水线的每个步骤)
- 指定post{}(定义好此流水线运行成功或者失败后,根据状态做一些任务)
解释一下上面的pipeline
在pipeLine里面需要指定构建节点,构建节点里面有些性质,比如名称,名称可以确定唯一的节点,名称是一个,标签是一组,一个标签下面可以包含多个不同的节点。使用标签会找该标签下面可用的节点
Options这个是构建时候的选项,比如参数,丢弃旧的构建
post就是构建后的操作,post就是根据流水线的状态去做一些事情,always是不管怎么样总是要做的一些事情
目录 返回
首页