0%

Jenkins-基础方法Basic Steps

[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() // clean up current work directory
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}"
}
}
}
}
}
}