[TOC]
这篇开始来学习一个最基础的pipeline组件,这个也是一个独立的插件,在安装pipeline的时候默认会自动安装,插件的名称是Pipeline: Basic Steps,你可以去你自己jenkins环境,插件管理下的installed下面找到这个插件
下面具体介绍下该插件包含的各个方法
deleteDir()方法
默认递归删除WORKSPACE下的文件和文件夹,这个方法是没有参数,也不需要参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| pipeline { agent any stages { stage ('input-test') { steps { script{ sh("ls -al ${env.WORKSPACE}") deleteDir() sh("ls -al ${env.WORKSPACE}") } } } } }
|
dir()方法
如果使用了dir语句块,这个方法就是改变当前的工作目录
在dir语句块里执行的其他路径或者相对路径,都是和dir里面设置的文件路径相关,这个和WORKSPACE相对文件路径已经没有关系了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| pipeline{ agent any stages{ stage("dir") { steps{ println env.WORKSPACE dir("${env.WORKSPACE}/testdata"){ sh "pwd" }
} } } }
|
echo() 和 error()方法
echo就是和groovy中的println没有任何区别,如果看打印的效果。一般来说使用echo就是打印info debug级别的日志输出用
如果遇到错误,就可以使用error(‘error message’) ,如果出现执行到error方法,jenkins job会退出并显示失败效果。
1 2 3 4 5 6 7 8 9 10 11 12
| pipeline{ agent any stages{ stage("dir") { steps{ echo("this is echo info") error("this is error info")
} } } }
|
fileExists()方法
这是判断一个文件是否存在,返回值是布尔类型,true就表示文件存在,false表示文件不存在
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| pipeline{ agent any stages{ stage("Demo") { steps{ script { json_file = "${env.WORKSPACE}/testdata/test_json.json" if(fileExists(json_file) == true) { echo("json file is exists") }else { error("here haven't find json file") } }
} } } }
|
pwd()方法
其实这个方法和linux下的shell命令pwd是一样的。由于jenkins支持windows和linux,但是linux是pwd,windows上是dir,所以这个插件就干脆支持一个方法,统称为pwd()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| pipeline{ agent any stages{ stage("Demo") { steps{ script { sh("pwd") println "===========" println pwd() } } } } }
|
isUnix()方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| pipeline{ agent any stages{ stage("Demo") { steps{ script { if(isUnix() == true) { echo("this jenkins job running on a linux-like system") }else { error("the jenkins job running on a windows system") } } } } } }
|
mail指令
Jenkins服务器上配置smtp服务
subject
必填,邮件标题主题,Type: String
body
必填,邮件正文,Type: String
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| pipeline{ agent any stages{ stage("Demo") { steps{ script { script { mail to: 'admin@163.com', subject: "Running Pipeline: ${currentBuild.fullDisplayName}", body: "Something is wrong with ${env.BUILD_URL}" } } } } } }
|