全流程包括:自动构建触发–>静态代码检查–>上传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/>
构建流水线:<a href="http://0.0.0.0:8080/job/${JOB_NAME}">http://0.0.0.0:8080/job/${JOB_NAME}</a><br/><hr/>
构建日志地址:<a href="${BUILD_URL}console">${BUILD_URL}console</a><br/><hr/>
静测结果:<a href="http://0.0.0.0:9000/dashboard/index/${JOB_NAME}">http://0.0.0.0:9000/dashboard/index/${JOB_NAME}</a><br/><hr/>
变更集:${JELLY_SCRIPT,template="html"}<br/><hr/>''',
description: '构建异常邮件通知正文', name: 'EmailextBody_Failed'
),
string(defaultValue: 'xxxxx', description: '_api_key', name: 'Api_Key', trim: false),
string(defaultValue: 'https://www.pgyer.com/apiv2/app/upload', description: 'Pgyer_URL', name: 'Pgyer_URL', trim: false),
string(defaultValue: 'https://www.pgyer.com/app/qrcode/H9lA', description: 'Qrcode_URL', name: 'Qrcode_URL', trim: false),
string(defaultValue: "\\test2\\build\\outputs\\apk\\test2-debug.apk", description: 'Output_Dir', name: 'Output_Dir', trim: false)
])])
您暂时无权查看此隐藏内容!