全流程包括:自动构建触发-->静态代码检查-->上传Artifactory-->上传蒲公英-->打tag-->邮件通知
注意:
①自动构建触发:
自动构建触发是通过PollSCM实现的。
其实更好的方法是将pipeline脚本保存Jenkinsfile存储在git库源码根目录,这样就会自动创建任务了,并且git version也很好获取。关于git version这个可以参考Git version获取。但是出于项目原因,不能这么处理,就用pipeline script拐弯抹角实现啦。
自动构建的同时,我们定义了项目的主板本号,主板本号存储在源码根目录下的一个叫VERSION.md的文件里面,每次构建的时候获取这里面的字段,命名为BUILD_VERSION,一般格式是1.0.0这种的。BUILD_VERSION跟BUILD_NUMBER共同组成了唯一的测试版本号。
②上传蒲公英其实是为了在邮件中给测试同学提供二维码下载方式。
调用的是蒲公英官方提供的接口:https://www.pgyer.com/doc/view/api#paramInfo。
顺便吐槽一下,蒲公英需要举身份证认证,真的有点囧==
③上传Artifactory是为了做产品包管理,大家使用的工具各不相同,可能参考价值不大。
④TAG这个,参考Git version获取。
⑤邮件通知:邮件通知这块,再从普通构建转为pipeline构建过程中真的遇到了不少坑,主要是引号的使用,一开始emailext body里面怎么都获取不到参数,还以为是不支持。新手折腾了很久才知道问题出在引号上,哎,我用了三引号"""就可以了。
脚本参考:
node('slave-windows-0.0.0.0') {
properties([parameters([
string(defaultValue: 'xxx@xxx.cn', description: '成功后邮件通知列表', name: 'Maillist_Success', trim: false),
string(defaultValue: 'xxx@m.cn', description: '构建异常邮件通知列表', name: 'Maillist_Failed', trim: false),
text(defaultValue: '''<hr/>
(本邮件是程序自动下发的,请勿回复!)<br/><hr/>
很遗憾的通知这次执行失败啦,一定有哪里出了问题,还请点开构建日志仔细检查,或者跟管理员联系 <br/><hr/>
项目名称:$PROJECT_NAME<br/><hr/>
触发原因:${CAUSE}<br/><hr/>