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

前言

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

为什么用Jekins自动化打包

为什么用jenkins打包,以及jenkins优点,官网 https://jenkins.io/ 自行查看。

怎样使Jekins自动化打Android开发包

jenkins下载与安装

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

tomcat进入 https://tomcat.apache.org/ 官网,下载最新的 tomcat 安装包并且安装。

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

基于Jenkins的Android自动化打包分享_第1张图片
jenkins下载页面.png

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

启动tomcat.png

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

基于Jenkins的Android自动化打包分享_第2张图片
image.png

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

cd /Users/fengyongge/.jenkins/secrets
open initialAdminPassword

然后在这个文件里面添加新的管理员密码。

jenkins配置

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

系统管理-管理插件

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

注解 解释
Android Lint Plugin 允许Jenkins直接调用Gradle构建脚本
Gradle Plugin 允许Jenkins直接调用Gradle构建脚本
Git plugin 允许Jenkins直接调用Gradle构建脚本
Upload to pgyer 上传APK、IPA文件到pgyer(蒲公英)
Publish Over SSH 通过ssh发送构建工件
SSH plugin 使用ssh协议远程执行shell命令。
…… ……

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

基于Jenkins的Android自动化打包分享_第3张图片
插件管理页面.png

系统管理-全局工具配置

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

首先你本地或者服务器上要安装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/bin
echo $GRADLE_HOME
/Applications/Android Studio.app/Contents/gradle/gradle-4.6

mac上gradle的环境配置有可能遇到坑,可以参考这篇文章Mac上配置gradle环境。除此之外,如果你的版本控制工具如果是git的话,需要本地安装git,然后配置git环境变量,然后在jenksin的系统管理-全局工具配置配置Jdk,Git,Gradle本地环境。

基于Jenkins的Android自动化打包分享_第4张图片
全局工具配置.png

系统管理-系统设置

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


基于Jenkins的Android自动化打包分享_第5张图片
android sdk环境变量配置.png

系统管理-新建项目-配置项目

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


基于Jenkins的Android自动化打包分享_第6张图片
新建项目.png

创建项目成功的页面


基于Jenkins的Android自动化打包分享_第7张图片
demo项目.png

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


基于Jenkins的Android自动化打包分享_第8张图片
项目配置.png
General
源码管理:

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


基于Jenkins的Android自动化打包分享_第9张图片
image.png

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

构建触发器

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


基于Jenkins的Android自动化打包分享_第10张图片
image.png
构建:

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


基于Jenkins的Android自动化打包分享_第11张图片
image.png

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

cd /Users/fengyongge/git/component
source /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_file
echo "curl -F "file=$apk_file" -F "uKey=fceccf48c73404982ba2e2af49fc43d3" \
-F "_api_key=daa2afcb08bdb21fcfd9645d6aa8c841" https://qiniu-storage.pgyer.com/apiv1/app/upload"

curl -F "file=@$apk_file" -F "uKey=fceccf48c73404982ba2e2af49fc43d3" \
-F "_api_key=daa2afcb08bdb21fcfd9645d6aa8c841" https://qiniu-storage.pgyer.com/apiv1/app/upload
基于Jenkins的Android自动化打包分享_第12张图片
image.png
构建后操作

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

如何上传到蒲公英

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


基于Jenkins的Android自动化打包分享_第13张图片
image.png

选择Upload to payer with apiV1填写你的蒲公英uKey、api_key、apk安装路径,这个插件详情使用,具体参考 https://www.pgyer.com/doc/view/plugin_github

基于Jenkins的Android自动化打包分享_第14张图片
image.png

如何上传到fir.im

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

基于Jenkins的Android自动化打包分享_第15张图片
image.png

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

基于Jenkins的Android自动化打包分享_第16张图片
image.png

fir下载页面截图:


基于Jenkins的Android自动化打包分享_第17张图片
image.png

写在最后

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

你可能感兴趣的:(基于Jenkins的Android自动化打包分享)