基于Jenkins的Android自动化打包分享

android studio 教程 | 2019-01-31 01:36

开发人员手动打包不仅浪费开发时间,打断开发思路,又不能及时给测试或者运营人员安装包,费力不讨好,你懂得,所有就有了自动化打包。大部分公司都配置的有打包平台,但有的朋友还不知道如何配置以及工作原理,本文就来分享下基于Jenkins的Android自动化打包。

为什么用jenkins打包,以及jenkins优点,官网  自行查看。

jenkins安装分两种,一种是下载jenkins安装包,本地安装jenkins,但是这样本地会多一个用户名为jenkins的用户,另一种是下载jenkins的war包。建议直接下载jenkins的war包,然后将jenkins的war包放在tomcat的webapps目录下,然后在本地访问jenkins的管理页面,同样适用于服务器。具体如何搭建服务器,可以参考这篇文章,Android开发者如何搭建服务器 

tomcat进入  官网,下载最新的 tomcat 安装包并且安装。

进入jenkins 的官网  , 根据你搭建平台的不同,下载 jenkins war 包 ,我这里用 mac 平台做演示。

通过指令启动tomcat,然后打开 http://localhost:8080/jenkins/, 进入jenkins管理页面。

第一次打开jenkins页面会给一个管理员用户,并且给出默认管理员密码。

如果你想修改管理员密码,执行下面命令。

cd /Users/fengyongge/.jenkins/secrets open initialAdminPassword然后在这个文件里面添加新的管理员密码。

jenkins配置android的自动化打包,主要分为插件的安装,全局工具配置,环境变量的配置3部分。

插件的安装取决于你打包时候各个功能的需求,如果只是简单的打包,需要的插件并不多,以下介绍几种插件。

然后通过搜索过滤你想要安装的插件,然后restart jenkins。

全局工具配置,既可以选择在线安装,也可以选择本地已经安装的,然后添加工具配置,建议后者,必经这些工具你在开发的时候也需要。

首先你本地或者服务器上要安装jdk,gradle,sdk,然后去配置环境变量,最后添加到jenkins的工具配置,笔者的配置。

#jdk JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home"export PATH="$JAVA_HOME/bin:$PATH:."#gradle export GRADLE_HOME=/Applications/Android\ Studio.app/Contents/gradle/gradle-4.6   export PATH=$GRADLE_HOME/bin:$PATH环境变量配置后,可以去验证是否配置成功,如果配置成功后,可以根据你配置的环境变量的变量名去验证。

echo $JAVA_HOME/Library/java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home/binecho $GRADLE_HOME/Applications/Android Studio.app/Contents/gradle/gradle-4.6mac上gradle的环境配置有可能遇到坑,可以参考这篇文章Mac上配置gradle环境 。除此之外,如果你的版本控制工具如果是git的话,需要本地安装git,然后配置git环境变量,然后在jenksin的系统管理-全局工具配置配置Jdk,Git,Gradle本地环境。

系统管理-系统设置

系统设置,就是配置全局设置和路径,在这里,我们只需要配置android sdk的环境变量。

在jenkins管理页面,新建任务,输入一个任务名称,选择构建一个自由风格的软件项目,点击确定。

创建项目成功的页面

项目上面的展示构建成功,构建失败,以及上次构建的时间信息等,这时候你点击右边的运行会提示打包失败,因为你还需要对项目进行配置,项目的配置主要分为General 源码管理,构建触发器,构建,构建后操作。点击项目名称,进入configure配置。

选择无或者git。如果选择git,需要添加项目的git地址,以及项目的分支,以及对项目管理权限的git账户信息。

选择无的话,可以通过shell脚本,执行进入本地checkout的项目,然后进行更新代码进行打包操作指令,前提是本地已经配置了git账号信息,下面在有介绍。

构建触发器常用的就是定时构建,例如每天的10点,触发自动构建,打一个新鲜出炉的新包。定时构建语法自行百度,在这不做探讨。

构建这块应该是比较重要的,构建可以通过gradle脚本,或者shell脚本等。如果是通过gradle脚本命令配置如下。

如果源码管理你选择的是无的话,就可以通过shell脚本,来进行更新代码,切换分支,执行打包,指令如下。笔者使用的都是shell脚本,也推荐这种做法。

cd /Users/fengyongge/git/componentsource /etc/profile git checkout master git pull /Applications/Android\ Studio.app/Contents/gradle/gradle-4.6/bin/gradle -p /Users/fengyongge/git/component --stacktrace --info clean assembleRelease下面是通过shell脚本上传到第三方分发平台-蒲公英,除了shell脚本外,还可以使用插件,构建后的操作会做介绍。

cd /Users/fengyongge/git/component apk_file=`find . -name '*.apk' | grep -v 'unaligned' | tail -n 1`echo $apk_fileecho "curl -F "file=$apk_file" -F "uKey=fceccf48cba2e2af49fc43d3" \ -F "_api_key=daa2afcb08bdb21fcfd9645d6aa8c841" "curl -F "file=@$apk_file" -F "uKey=fceccf48cba2e2af49fc43d3" \-F "_api_key=daa2afcb08bdb21fcfd9645d6aa8c841"

如果将安装包上传到第三方分发平台,不习惯脚本的方式的话,下面有更简单的方式,有可视页面,通过安装插件,填写信息即可。

在管理插件页面,搜索上传蒲公英平台插架-Upload to pgyer,然后安装,安装之后你在构建后的操作会看到有Upload to payer with apiV1。

选择Upload to payer with apiV1填写你的蒲公英uKey、api_key、apk安装路径,这个插件详情使用,具体参考 

由于开发者没有将插件上传到插件库里面,所以在插件管理里面搜索不到,因此fir的插件需要现在本地上传下,然后在使用。主要步骤如下:1:下载插件,在系统管理-插件管理-高级-上传插件2:安装插件3:使用插件,配置-构建后操作-增加构建后操作步骤-Upload to fir.im4:填写 API Token具体参考 

jenkins配置完之后,就可以运行任务了,这时候几分钟后你在你的蒲公英或者fir.im平台就能看到新的apk安装包。如果打包失败,可以去点击你的项目去Console Output看控制台输入,然后重新打包即可。蒲公英下载页面截图 :

fir下载页面截图:

以上就是我对基于Jenkins的Android自动化打包操作步骤的分享。如有问题,评论探讨,谢谢!