Jenkins高级篇之Pipeline方法篇-Pipeline Utility Steps-3-方法readProperties

释放双眼,带上耳机,听听看~!

这篇继续来学习文件相关操作的方法,前面学习了JSON格式文件的读和写,这么介绍一个读取properties文件,这个方法特别是适合Java项目,一个Java项目很多配置文件可能是采用properties类型来写入键值对数据。

1.方法readProperties

就是从一个xxx.properties文件去读取内容出来,得到是一个map对象。下面我现在/testdata文件夹下创建一个test.properties文件,里面写入这些内容。


1
2
3
4
5
6
1Name = Anthony
2Aget = 18
3City = Beijing
4Agend = male
5
6

module 里面解析读取properties的方法如下。


1
2
3
4
5
6
7
1def read_properties(properties_file) {
2    def props = readProperties interpolate: true, file: properties_file
3    props.each {
4       println ( it.key + " = " + it.value )
5    }
6}
7

pipeline 读取properties的stage代码如下


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1import hudson.model.*;
2
3println env.JOB_NAME
4println env.BUILD_NUMBER
5
6pipeline{
7  
8   agent any
9   stages{
10      stage("init") {
11          steps{
12              script{
13                  model_test = load env.WORKSPACE + "/pipeline/module/pipeline-demo-module.groovy"
14              }
15          }
16      }
17      stage("read properties") {
18          steps{
19              script{
20                  properties_file = env.WORKSPACE + "/testdata/test.properties"
21                  model_test.read_properties(properties_file)
22                  println "================================"
23              }
24          }
25      }
26  }
27}
28
29
30
31

我的jenkins 测试job地址:http://65.49.216.200:8080/job/pipeline-project-demo/47/console

你通过日志可以看到具体测试结果,代码可以看replay下脚本,或者github项目。

2.方法touch

这个touch就是linux下的touch的作用,创建一个文件(如果不存在),并产生时间戳。

下面来举例,运行一个stage来测试下。


1
2
3
4
5
6
7
8
9
1stage("touch file") {
2           steps{
3               script{
4                   touch_file = env.WORKSPACE + "/testdata/"+ env.BUILD_NUMBER +".log"
5                   touch touch_file
6               }
7           }
8       }
9

把这个加到原来的pipeline stage文件,运行,然后去自己jenkins 节点机器下找到刚刚touch的文件


1
2
3
4
5
6
7
8
9
1[root@Anthony ~]# cd /var/lib/jenkins/workspace/pipeline-project-demo/testdata/
2[root@Anthony testdata]# ls
3123.txt  abc.log  new_json.json   test.properties
448.log   a.log    test_json.json
5[root@Anthony testdata]# cat 48.log
6[root@Anthony testdata]# ls -l 48.log
7-rw-r--r-- 1 jenkins jenkins 0 Nov  8 10:08 48.log
8[root@Anthony testdata]#
9

我的测试jenkins job:http://65.49.216.200:8080/job/pipeline-project-demo/48/

这里需要提醒的哈,touch的文件在jenkins 节点机器不是在代码库,也不是在你eclipse项目里。

 

 

给TA打赏
共{{data.count}}人
人已打赏
安全经验

职场中的那些话那些事

2021-9-24 20:41:29

安全经验

Linux日志分析

2021-11-28 16:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索