为什么要做自动化构建
先说提测
客户端发版之前总要经过测试部门的各种测试,像我厂的流程是:
-
开发打测试包
-
将测试包上传自己的内测平台
-
在测试的钉钉群组里通知测试部门或者发送邮件抄送测试部门
-
测试部门测试并反馈问题(可以自己的反馈平台也可以用BugTags)
-
开发人员修复问题并重复上述步骤
然后问题就来了,每次提测需要抽一个同学来做这些事情,并且跑自动化测试的这些过程是没办法在研发人员技术内测的时候就能提供测试报告的。
再说发版
我厂的渠道数量已经达到了100+,开发完新的业务需要全渠道发版的时候,还是需要单独抽一个同学出来跟进发版包,并且发版的流程更多。
-
研发人员打渠道(100+)
-
测试部门测试渠道包(各种验证:渠道号是不是正确等)
-
研发人员将所有的渠道包上传内部文件存储服务器
-
产品及商务部门从内部服务器拉去渠道,并完成发版
-
发版邮件通知
然后问题又来了:
-
怎样保证这位同学机器上的打包环境是正常的?会不会他在开发过程中改了系统的环境造成未知的漏洞?
-
打包出来的apk文件是不是需要测试部门彻底过一遍?测试部门的人手如果不够怎么办?
-
最关键的一点:打包过程中,这名同学的机器基本不能用作开发,因为gradle会把内存跟cpu用的很干净。
总结
本着繁重而重复的体力劳动交给机器做的原则,我们开始基于jenkins搞了一套自动化构建系统。这里我将构建过程中碰到的坑分享出来给大家,避免其他小伙伴重复入坑。
搭建Jenkins运行环境
下载并安装
进入官方的下载地址(https://jenkins.io/download/),由于我的内部服务器装的是windows系统所以我选择的是windows安装包。Linux Mac的安装方式大同小异。
安装的方式有两种:
1、直接下载可安装文件,双击安装即可,安装完毕之后jenkins会自动打开浏览器并定位到8080端口
2、下载.war的包,然后下载tomcat容器,将该war包拷贝到tomcat容器中然后启动tomcat。(这里不多说了,google一波都出来了)
初始化
安装完jenkins后,打开浏览器http://localhost:8080,会弹出初始化界面
-
按照提示的文件目录将管理员密码输入(嗯,聪明的你一看就知道这图是我网上盗的)
-
然后重点来了,正常来说会进入如下界面进入插件安装环节
如果有出现以下提示的同学,欢迎进入第一个坑
Offline
This Jenkins instance appears to be offline...(不啦不啦一堆),没错是因为你的服务器没翻q,需要自备梯子。(为了安全省事,备个梯子吧,大家都是搞开发的,没梯子怎么玩)。
-
安装 Gradle plugin,Git Parameter Plug-In,Email Extension Plugin以及Android Emulator Plugin插件
-
Jenkins会提示你创建一个用户,按照提示操作就好。
-
喜大普奔,我们离自动化构建又近了一步,这时你会有如下的操作界面。忽略我已经创建好了的项目(打马赛克的地方)。
进行全局环境变量的配置
系统设置
打开系统管理-系统设置页面。这里我们重点设置一下邮箱,其他的可以使用默认的。
-
Jenkins Location选项卡
注意:系统管理员邮件地址一定要设置,以后Jenkins构建的邮箱通知会以这个邮箱地址为发件人发送
-
Extended E-mail Notification选项卡。因为我们安装了Extended E-mail Notification插件所以需要设置一下这个选项卡的内容。注意因为我们用的是阿里云的企业邮箱,所以smtp走的是阿里云的。smtp这块需要根据你们的具体邮箱具体设置。
-
Android选项卡。这块需要设置一下Android SDK路径。我的SDK路径是我本机的,大家需要根据自己的具体路径具体设置。
完活,然后点击右下角的“保存”按钮。
系统工具配置
JDK配置(老规矩,大家的具体路径需要具体设置)
......
浙公网安备 33010602011771号