Jenkins高级篇之Pipeline方法篇-Pipeline Basic Steps-2-方法fileExists、isUnix、pwd
继续来学习pipeline basic steps里面的方法,前面学习了文件夹相关的操作方法,这篇来学习几个布尔类型的返回值的方法。第一个是判断一个文件是否存在,第二个是判断当前执行的环境是不是Linux还是windows。1方法fileExists这是判断一个文件是否存在,返回值是布尔类型,true就表示文件存在,false表示文件不存在。这个我一般是用来验证判断,例如,我调用了一个请求...
继续来学习pipeline basic steps里面的方法,前面学习了文件夹相关的操作方法,这篇来学习几个布尔类型的返回值的方法。第一个是判断一个文件是否存在,第二个是判断当前执行的环境是不是Linux还是windows。
1方法fileExists
这是判断一个文件是否存在,返回值是布尔类型,true就表示文件存在,false表示文件不存在。这个我一般是用来验证判断,例如,我调用了一个请求,然后把请求回来的数据保存为一个log或者json文件。我在解析这个文件之前,我会对这个文件是否存在进行判断,这个时候就可以使用fileExists,这个方法经常需要使用,你需要重点掌握。
代码
import hudson.model.*;
println env.JOB_NAME
println env.BUILD_NUMBER
pipeline{
agent any
stages{
stage("fileExists") {
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")
}
}
}
}
}
}
关键日志:
[Pipeline] }
[Pipeline] // stage
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (fileExists)
[Pipeline] script
[Pipeline] {
[Pipeline] fileExists
[Pipeline] echo
json file is exists
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
我这边测试结果通过,参考job:http://65.49.216.200:8080/job/pipeline_basic_steps/21/console
2方法isUnix()
这个方法是判断当前运行的Jenkins node环境是linux还是windows,如果返回是true表示是linux/mac系统,如果返回是false,表示当前jenkins job运行在windows的系统上。
pipeline stage 代码
import hudson.model.*;
println env.JOB_NAME
println env.BUILD_NUMBER
pipeline{
agent any
stages{
stage("fileExists") {
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")
}
}
}
}
}
}
我的jenkins master是linux,所以上面输出的是
[Pipeline] stage
[Pipeline] { (fileExists)
[Pipeline] script
[Pipeline] {
[Pipeline] isUnix
[Pipeline] echo
this jenkins job running on a linux-like system
[Pipeline] }
[Pipeline] // script
3.方法pwd()
其实这个方法和linux下的shell命令pwd是一样的。由于jenkins支持windows和linux,但是linux是pwd,windows上是dir。所以这个插件就干脆支持一个方法,统称为pwd(),下面来试试linux上shell和插件本身方法pwd()是否是一样效果。
import hudson.model.*;
println env.JOB_NAME
println env.BUILD_NUMBER
pipeline{
agent any
stages{
stage("fileExists") {
steps{
script {
sh("pwd")
println "==========="
println pwd()
}
}
}
}
}
关键日志
[pipeline_basic_steps] Running shell script
+ pwd
/var/lib/jenkins/workspace/pipeline_basic_steps
[Pipeline] echo
===========
[Pipeline] pwd
[Pipeline] echo
/var/lib/jenkins/workspace/pipeline_basic_steps
[Pipeline] }
[Pipeline] // script
这个方法pwd()在windows上也可以运行,只不过我没有连接window的agent机器
更多推荐
所有评论(0)