700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 如何利用jenkins与蒲公英实现全面自动化打包

如何利用jenkins与蒲公英实现全面自动化打包

时间:2024-03-14 11:37:56

相关推荐

如何利用jenkins与蒲公英实现全面自动化打包

在开发的时候,每一个版本结束之后都要将工程代码打包成ipa文件,然后分发给测试团队进行测试,每次改一个小bug都要打一次包,实在是效率太低了,为了解决这个问题,于是想通过配置jenkins与蒲公英平台实现全自动的打包化,从此之后开发人员就不用再关注打包这种繁琐而没有意义的事情上,可以更专心的开发工作,最终要实现以下目标:

当开发人员将代码改好上传到svn或者git仓库管理器上之后,jenkins会自动的去查询是否有代码的改动,如果代码有改动就会将目标工程进行打包,打包之后再将包文件上传到蒲公英平台,再通过邮件的形式告知所有测试人员,邮件中包含蒲公英的下载链接,点击便可安装,这样一来开发人员就不必去关心打包工作,只需要将修改的代码上传到svn或者git就好。

主要步骤:

1 jenkins的安装

有两种方法来安装jenkins,分别是:

方式1: 通过去官网下载pkg包安装;

方式2: 通过homeBrew命令行安装:

brew install jenkins

通过两种方式安装有几点不同:

1 安装的目录不一样;

2 卸载的方式不一样,如果是方式一安装的则需要到目录下找到uninstall程序点击卸载,如果方式2安装的则直接在命令行执行:

brew uninstall jenkins

极力推荐第二种方式,方便快捷。

在安装过程中按照提示一步一步执行便可;成功之后,直接在浏览器地址栏中输入:localhost:8080即可;

第一次进入的时候需要设置账号密码之类的信息,设置完成之后便可以通过账号密码登录进去。

如果需要退出jenkins直接在端口后面添加exit,重启添加restart,重新加载reload;

2 Fastlane

是一套使用Ruby写的自动化工具集,目的是为了简化安卓与IOS的部署过程,自动化工作流。

1 安装xcode命令行工具

xcode-select --install

如果是直接在mac上使用了xcode工程的话一般都是默认装好的,就可以直接进行第二步;

2 安装Fastlane

sudo gem install fastlane -NV 或者 brew cask install fastlane

建议使用gem安装,安装执行

fastlane --version

便可确认是否安装完成和当前使用的版本号。不过在这个过程中可能会遇到一些问题,比如JDK版本过高或者过低,此时就要下载对应的版本下载,总之遇到具体问题具体分析,通常看到提示都是能够解决的。

3 初始化fastlane

通过终端命令cd+目录,直接跳到工程目录,执行:

fastlane init

成功之后工程文件中会多出几个文件,如下图:

其中Fastfile则是我们应该操作的文件,在文件中编写:

platform :ios dodesc "Description of what the lane does"lane :custom_lane do# add actions here: https://docs.fastlane.tools/actionsendlane :beta dobuild_app(export_method: "ad-hoc")pgyer(api_key: "f9467c727eb065b322341c6c49f22aac", user_key: "fa31dbf8cd6bcc6ef0d6c1b01bce1788")endend

其中ad-hoc指的是包的格式,同时还设置了蒲公英的api_key和user_key,这两个值直接到蒲公英官网实名注册一下就可以获得了。

在执行beta do都命令时可能会经历很多次失败,但是不要放弃,从log中寻找失败的原因,然后再一步一步的解决这个问题,可能是因为没添加证书,插件版本过低等,耐心的一个一个解决即可。

想要上传到蒲公英还需要安装它的插件,执行命令行:

fastlane add_plugin pgyer

为了避免每次新建项目都要执行fastlane init命令,可以将固定的几个文件和工程文件一起上传到svn中,这样一来就不用每次都执行fastlane init命令了。

3 配置jenkins

基础工作基本已经搭建完成之后,就要进行实际的操作了,登录到localhost:8080

1 新建一个任务,选择自由风格的软件项目即可;

2 进入系统管理-系统设置

通过全局属性中的环境变量,设置好将来可以接受邮件的邮箱地址和将来工程的目录地址,这里可以设置很多参数,只要是在多处用到的都可以在这里设置。

设置好系统管理员的邮件地址,这里要注意一个问题就是,如果是qq邮箱的话可能会遇到第三方的授权码问题,那么此时简单的设置邮箱密码是不能够发送邮件成功的。

这里设置好发送邮件和密码,也就是发件人的账户密码,而且必须正确,不然会发送邮件失败,不同的邮箱都要不同的STMP server,具体问题具体分析,此处是163的,所以设置即可。

系统配置到这里就差不都了,不过这里的东西很多,我只是简单的配置了一下,如果要想实现更复杂的功能就要配置更多了,以后有机会可以更详细的研究一下。

4 配置我的任务

进入我的任务-配置

因为我使用的是svn,所以选择subversion,Repository URL是svn上对应项目的地址,选择svn-Edit-Copy URL复制出工程的地址,Credentials是svn获取代码的账户与密码,也必须正确才行,不然拉取不到代码。

通过轮训来检查svn对应工程的代码是否有改变,如果有改变就执行构建动作,H/3….表示三分钟检查一次,具体格式可以点击右侧的问号查询。

执行终端命令行,首选cd到具体工程目录下,然后执行fastlane beta命令,直接执行先前设置好的打包成具体格式,如ad-hoc类型的包,然后上传到蒲公英平台上去。

最后便是构建后操作,此处可以设置构建后的具体操作,可以通过邮件的形式将结果发送给具体的人员,比如成功之后便可以将成功格式的数据发送给开发和测试人员,失败之后便只将结果发送给开发人员等等,这里的设置很多,扩展性也很大,看自己的需求了。

邮件的内容需要自己编写,此处选择的是html格式,如下:

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>${PROJECT_NAME}-第${BUILD_NUMBER}次构建日志</title> </head> <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0"> <table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif"> <tr> <td>(本邮件是程序自动下发的,请勿回复!)</td> </tr> <tr> <td><h2> <font color="#0000FF">构建结果 - ${BUILD_STATUS}</font> </h2></td> </tr><tr><td><h4> <font color="#0000FF">内网测试安装地址:/pxw_ios_inner</font> </h4></td> </tr> <tr><td><h4> <font color="#0000FF">iOS用户版V5.11.1 .ipa文件SVN目录: svn://192.168.1.200/ios/xw-ios-ipa/xw-customer-ipa/V5.11.1</font> </h4></td> </tr> <tr> <td><br /> <b><font color="#0B610B">构建信息</font></b> <hr size="2" width="100%" align="center" /></td> </tr> <tr> <td> <ul> <li>项目名称 : ${PROJECT_NAME}</li> <li>构建编号 : 第${BUILD_NUMBER}次构建</li> <li>SVN版本 : ${SVN_REVISION}</li> <li>触发原因: ${CAUSE}</li> <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li> <li>构建 Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li> <li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li> <li>项目 Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li> </ul> </td> </tr> <tr> <td><b><font color="#0B610B">Changes Since Last Successful Build:</font></b> <hr size="2" width="100%" align="center" /></td> </tr> <tr> <td> <ul> <li>历史变更记录 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a></li> </ul> ${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:<br />%c<br />",showPaths=true,changesFormat="<pre>[%a]<br />%m</pre>",pathFormat=" %p"} </td> </tr> <tr> <td><b>Test Informations</b> <hr size="2" width="100%" align="center" /></td> </tr> <tr> <td><pre style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">Total:${TEST_COUNTS,var="total"},Pass:${TEST_COUNTS,var="pass"},Failed:${TEST_COUNTS,var="fail"},Skiped:${TEST_COUNTS,var="skip"}</pre> <br /></td> </tr> <tr> <td><b><font color="#0B610B">构建日志 (最后 100行):</font></b> <hr size="2" width="100%" align="center" /></td> </tr> <tr> <td><textarea cols="80" rows="30" readonly="readonly" style="font-family: Courier New">${BUILD_LOG, maxLines=100}</textarea> </td> </tr> </table> </body> </html>

在邮件中通过蒲公英的网址通过二维码扫描便可以下载app进行安装了。

至此,jenkins的配置也算是基本完成了,不过这些只是很简单的配置,如果想要实现更多功能则需要更深入的研究了,在整个过程中每一步都有可能遇到问题,此时不要放弃,耐心的查找问题的来源和解决方案,到最后一定可以成功的。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。