Jenkinfile入门:Pipeline as code
小编 DevOps视角
什么是pipeline
在《持续交付》中是这样介绍Pipeline的,Pipeline是指从软件版本控制库到用户手中这一过程的自动化表现形式。
在Jenkins的官方文档中,流水线是用户定义的一个CD流水线模型 。流水线的代码定义了整个的构建过程, 他通常包括构建, 测试和交付应用程序的阶段 。
Jenkinsfile
Jenkinsfile就是一个文本文件,就像Dockerfile对于Docker一样。
Jenkins默认是不支持Jenkinfiles的,需要安装Pipeline插件才能够支持。正是由于Jenkinsfile,Jenkins才能实现"Pipeline as code"。
pipeline语法
语言
Goovy语言被选择作为基础来实现pipeline,所以在写脚本式pipeline时,就是在写Groovy代码。语法有脚本式语法和声明式语法两种。pipeline插件从2.5版本开始才支持两种语法。
语法
脚本式语法
脚本式语法灵活、可扩展,但也意味着更复杂。
node {
stage('Build') {
//执行构建
}
stage('Test') {
//执行测试
}
stage('Deploy') {
try{
//执行部署
}catch(err){
currentBuild.result = "FAILURE"
main body "project build error is here:${env.BUILD_URL}"
from: 'xxx@yy.com'
replyto: 'yyy@yy.com'
subject: 'project build failed'
to: 'zzz@yy.com'
throw err
}
}
}
声明式语法
由于脚本式语法比较复杂,才有了声明式语法,提供更简单、更结构化的语法。
pipeline {
agent any
stages {
stage('Build'){
steps {
echo "building"
}
}
stage('Test'){
steps {
echo "testing"
}
}
stage('Deploy'){
steps {
echo "deploying"
}
}
post {
failure {
mailto: "xxx@yy.com", subject: 'The pipeline failed'
}
}
}
}
创建第一个pipeline
安装pipeline插件
【系统管理】->【插件管理】->【可选插件】 搜索Pipeline
创建pipeline任务
进行构建
从版本控制拉去pipeline
这里是使用github,从 github上获取项目的Jenkinsfile进行构建。
需要安装Git plugin插件。
配置凭证(credentials)
配置pipeline
进行构建
结语
这里先不介绍Pipeline使用Maven进行构建了。使用Maven进行构建时,有两种方法。一种是使用Jenkins安装Maven并进行构建,一种是使用手动安装Maven进行构建