那里治疗白癜风最好 https://m-mip.39.net/nk/mipso_7637171.html

前言

此文来自一位程序猿的实战总结,非常具备参考价值(当然,建议参考,不建议完全照搬,使用场景不同、需求不同,会有很大差异;如果你刚好想实施APP持续集成,又没有思路,此文是一篇非常不错的文章;)

当然,如果你完全不知道Jenkins能做什么事,有哪些适用场景,可以看看之前老徐的Jenkins普及文:Jenkins持续集成体系|最完整的介绍及资料

从Tester的角度,从老徐十年的职业经验,以及对测试职业后续的发展趋势,建议所有Tester去掌握整个持续集成体系。

关于懒惰

经常看到很多博文里面讲’懒惰’是一个优秀程序猿的良好品质,这一点我深以为然,因为在程序猿的工作中总是充满了重复劳动,也许正是因为这个原因,导致大部分程序猿慢慢变得懒惰,而那些没变懒的程序猿他们慢慢灭绝了~~~。而对于懒惰这个词,我们不能曲解它的意思,并不是怠倦、消沉的对待工作,而是当一个程序员遇到重复的工作时,懒惰的程序员首先想到的是我要开发出一个工具自动执行这些工作。

为什么需要工具

当UI妹子给你一大堆图片而没有给你加上

2x后缀时,看着妹子可怜的眼神,怎么忍心让妹子们返工,懒惰的程序员就在想了,这特么是一个循环重复的劳动,为啥不写个脚本自动给每张图片文件名加上一个

2x后缀呢,分分钟搞定,然后准时下班约会去了。。。。

所以很早之前我的第一个开源工具dSYM分析工具就是这么来的,当我连在命令行中续修改了几个友盟统计后台收集到异常后,我发现这就是一个重复而且繁琐的劳动啊,所以我便花了两个多小时做了一个APP应用,这样以后我每次需要做的只是:1)打开应用,2)拖入dSYM文件3)输入异常地址,便得到异常信息了。

而写这篇文章则讲述了我是如何一步一步从1)手动打包–2)Jenkins打包,手动发布–3)Jenkins打包+蒲公英分发的。

起因

对于发包这个问题,相信是每个程序猿哥哥心中挥之不去的痛,而测试妹子们也在每次马上就发的承诺中得出一个结论:“你是个大骗子”。

所以每次被测试妹子追着要测试包,产品经理说给我装一个开发中的新版本瞧瞧呗,后台哥哥说给我安装一个某某老版本的包调试一下啊。。。然后每次不得暂停下手中的工作,切换到某个版本,Archive。。。。终于有一次答应测试妹子吃饭前会给他们发包后,忙着忙着就忘掉直接去吃饭了,看着妹子QQ上发来各种鄙视的表情,这不是我想要的人生啊,我一定要改变在测试妹子心中的形象,所以自动化构建这件事情提上日程.

使用Jenkins半自动化

我直接选用了已经很成熟的Jenkins持续集成解决方案,至于如何配置就不做过多介绍了,网上有不少这类的文章(可以看看老徐之前普及文:持续集成之Jenkins_老徐先带你入个门)。有了Jenkins后,给我带来最便利的一点就是,每次打包的时候,直接在公司的Mac服务器上进行操作,而我还可以继续进行手上的工作,打包完成后把ipa包发给测试,同时也教会了测试如何从Jenkins上下载已经打包好的ipa文件,就这样我可以随时在手机上打开公司内网的Jenkins打包,当我把这一切告诉测试妹子的时候,她用期望的眼神看着我说:“这是真的么。。。”

Jenkins+蒲公英升级

就这样用了一段时间,也没遇到什么问题,或许是比较爱折腾,我发现每次Jenkins打包好了之后,我还需要手动去下载,或者让测试他们下载,当测试拿到文件后,还需要将手机连到电脑用iTunes或者第三方工具安装文件,我想要是Jenkins打包完成后会自动通知测试更新并安装该多好,而且之前也听说过第三方的分发平台“蒲公英”,于是我去蒲公英网站看了一番,很高兴的是他们开放上传APP和安装APP等API,有了这个东西,我的想法便完全可以实现了:1)Jenkins打包2)打包成功后IPA文件上传到Tomcat服务器3)通过API把IPA文件传给蒲公英4)上传成功后把安装地址通过邮件发送给测试。5)测试直接在手机上打开地址安装。

流程图大概像这样:

1.IPA文件上传到Tomcat服务器

由于每次Jenkins打包的时候,编译后的文件是放在项目根目录下的build文件夹里面,每次build的时候这个文件夹内的文件都会被覆盖,所以每次build后我都会通过FTP把IPA文件上传到Tomcat上备份,同时还可以方便提供给别人下载,比如在给测试发送蒲公英的安装地址时,同时也可以给出IPA下载地址。

*开启MacFTP-server

Mac电脑本身是支持FTP服务的,只不过系统默认关闭了,MountainTweaks这款软件可以很方便的修改系统的一些设置,比如是否开启打开Window动画,是否显示用户的Library文件夹,其中有一个选项就是是否开启系统的FTP-server功能。

*配置Jenkins的FTPServer

Mac服务器支持FTP-server后,我在Jenkins上安装了PublishOverFTPPlugin这个插件,这个插件可以将指定的文件发送到选中的FTP服务器上去,安装完插件后,在Jenkins的系统设置中会多出一项PublishoverFTP的设置,因为Tomcat和Jenkins是在一台电脑上,所以Hostname直接指向本地,RemoteDirectory也直接指向Tomcat的webapps下对应app的目录。配置好后可以点TestConfiguration测试一下,如果显示success,则成功了。

*在Job的设置里面指定上传到FTP的文件

Jenkins配置好FTPServer后,接下来就需要在Job中去设置打包成功后把哪些文件上传到指定的FTPServer中去了。在增加构建后操作步骤中有一个SendbuildartifactsoverFTP选项,这里首先需要选择我们之前配好的FTPServer。Sourcefiles是我们构建目录下build文件夹内所有的文件,Removeprefix设置为build是告诉插件创建路径的时候不要包含build,Remotedirectory则是我们指定的FTPServer上需要创建的目录,这里我以Jenkins构建的版本号去创建文件夹,之后取文件的时候,路径便会很方便拼接。

2.通过API把IPA文件传给蒲公英

打包成功了,并且文件也备份到Tomcat上去之后,接下来就需要编写脚本了,脚本需要的功能是:1)上传IPA文件到蒲公英2)发邮件通知测试。这两点通过脚本是很好实现的,如果想将脚本应用到自己的环境中,最主要的是如下这几行代码:

uKey、file_name、_api_key、installPassword这四个值是根据自己的情况配置的。project_name的值很重要,涉及到很多地方:1)tomcat的webapps目录下面要有project_name对应的目录,因为在获取ipa_file_tomcat_



转载请注明地址:http://www.pugongyinga.com/pgyxy/11602.html