背景:
客户要求在APP打包页面展示二维码。虽然感觉这个功能很鸡肋,但是还是加上吧。
效果展示:
配置:
在上图中,106对应的内容是BuildName
,我们可以通过build-name-setter
插件来实现自定义配置;二维码和二维码说明是对应的BuildDescription
。
安装description setter plugin
插件后,在配置页面的Build
栏目下,Add build step
中会出现Set build description
配置项,添加该配置项后就会出现如下配置框。
该功能的强大之处在于,它可以在构建日志中通过正则表达式来匹配内容,并将匹配到的内容添加到BuildDescription
中去。
例如,我们想要展示的二维码图片是在每次构建过程中生成的,因此我们首先要获取到二维码图片文件。
我的做法是,使用shell提交APP至fir生成二维码图片和提交短链接。
- I, [2017-07-05T14:01:18.888407 #6768] INFO -- : Uploading app binary......
- I, [2017-07-05T14:05:36.265570 #6768] INFO -- : Fetch app info from fir.im
- I, [2017-07-05T14:05:36.850586 #6768] INFO -- : ✈ -------------------------------------------- ✈
- I, [2017-07-05T14:05:36.850628 #6768] INFO -- : Published succeed: http://fir.im/gapn
然后,在Set build description
配置项的Regular expression
就可以按照如下正则表达式进行匹配:
- Published succeed: (.*)$
接下来,就可以在Description
中对匹配到的结果进行引用二维码链接。
- <img src='${BUILD_URL}artifact/version/fir-XDTX-TEST.png' height="200" width="200">\n<a href='\1'>Install Online</a>
通过以上方式,就可以实现前面图片中的效果。在这里,我们用到了HTML的标签,而Jenkins的Markup Formatter
默认是采用Plain text
模式,因此还需要对Jenkins对系统配置进行修改,在安全设置中选择safe html。
4、收集编译成果物
在上面讲解的展示二维码图片一节中,用到了${BUILD_URL}artifact/version/fir-XDTX-TEST.png一项,这里的URL就是用到了编译成果物收集后保存的路径。
Archives build artifacts
是Jenkins默认自带的功能,无需安装插件。该功能在配置页面的Post-build Actions
栏目下,在Add post-build action
的列表中选择添加Archives build artifacts
。
添加后的配置页面如下图所示:
通常,我们只需要配置Files to archive
即可。定位文件时,可以通过正则表达式进行匹配,也可以调用项目的环境变量;多个文件通过逗号进行分隔。
通过这种方式,我们就可以实现在每次完成构建后将需要的文件收集起来进行存档,以便后续在Jenkins的任务页面中进行下载。