Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2174970
  • 博文数量: 104
  • 博客积分: 206
  • 博客等级: 入伍新兵
  • 技术积分: 1829
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-12 10:24
个人简介

效字当先,以质为本。测试开发入行十余年,辉煌过,迷茫过,持续探寻人生的激情和前进的步伐!好好生活,认真工作!

文章分类
文章存档

2024年(1)

2019年(2)

2018年(4)

2017年(7)

2016年(3)

2015年(14)

2014年(33)

2013年(31)

2012年(9)

分类: IT业界

2017-05-10 15:09:53

为Jenkins的每个build设置description,这个需求是什么意思呢?

在持续集成过程中,随着feature的不断加入,版本越来越多,你希望每个build成功之后能显示一些很重要的信息,比如版本号,当前该build支持的主要feature等。

这样不论是开发还是测试,在拿build的时候都能一眼就看出该build对应的版本号以及主要的feature。


这些信息显示在哪比较方便又直观呢? 

一种方法是存到一个文件中,然后把该我呢就包含在release的包里。这个方法可行,但比较麻烦,

你想要看version的话还得下载解压之后才能看到,无形中增加了相关人员的工作量。

那有没有更高效的方法?Jenkins有很多的plugin,搜索一下发现了description setter plugin,似乎符合我们的需要,不用自己造轮子了。吐舌头


首先是安装plugin,这个有很多方法,比如在manage plugins控制面板中可以安装,也可以手工下载然后上传。我用的是后者,简单,方便。


安装之后在在configure页面的Add post-build action中就可以看到有一项是Set build description了。

通常我们需要设置Regular expression和Description两项。 这两项的具体含义可以通过点击它们右边的问号来看注释。


用description setter plugin,网上的例子都是一行的,比如有一行版本信息:[version]Component1 Version: 1.2, Component2 Version: 1.6

我们可以将Regular expression设置成 \ [version\ ](.*),(.*), 将Description设置成\1
\2,     (这里\ 和 方括号之间没有空格,如果我把空格去掉,blog的格式就变了委屈

这样就会在build的description中显示

Component1 Version: 1.2

Component2 Version: 1.6



我遇到的问题是,我们有一个文件,包含了很多行的信息,希望将它们显示到每一个build的descrption中。

一开始没搞明白\n是什么意思,还以为这个plugin会匹配每一行,然后\1就对应第一行匹配的,\2对应第二行匹配的,其实不是这样的。

它只会去匹配一行,匹配了之后,如果正则表达式中有多个capture的括号,则可以用\1 \2来对应这些括号。

那如果我们想把文件中的多行信息都capture到该怎么办呢?


解决办法:
1. 我们在shell中将该文件按一定的格式输出: 将换行符替换成
,并将所有行join成一行,最后再打印出来。

打印的时候也加上了一个标识符[DESC],以便正则去识别。

cat Install/ChangeLog.txt | perl -e "@s=<>; map{s#\r\n#
#;} @s; print '[DESC]'; print join '', @s;"


2. Regular expression很简单:^\ [DESC\ ](.*)                (这里\ 和 方括号之间没有空格)

3. Description也很简单:\1


这样就OK了。

通过一些简单地技巧就可以解决多行的description的显示了。

脚本强大,plugin威武大笑

阅读(6061) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~