Jenkins自动化构建(一)玩转Android项目自动化打包
早些年Eclipse时代Android打包采用的ant,现在AndroidStudio时代采用的Gradle,目前的开发模式都是采用敏捷开发,如果仍采用手动打包给QA提测未免太耽误事了,目前众多公司采用的是自动化打包策略+自动化测试,本文是Jenkins自动化构建的第一篇,玩转Android项目的自动化打包,来自早些时候个人整理的有道云笔记,不对之处请指出。前方高能,巨图众多!jenkins工作流
早些年Eclipse时代Android打包采用的ant
,现在AndroidStudio时代采用的Gradle
,目前的开发模式都是采用敏捷开发,如果仍采用手动打包给QA提测未免太耽误事了,目前众多公司采用的是自动化打包策略+自动化测试,本文是Jenkins自动化构建的第一篇,玩转Android项目的自动化打包,来自早些时候个人整理的有道云笔记,不对之处请指出。前方高能,巨图众多!
jenkins工作流程
jenkins安装
一般公司自动化构建都会将jenkins配置到Tomcat下,无论是jenkins还是tomcat都需要jdk。
准备工作
java jdk下载、安装、配置环境变量,安装过程忽略。
2.Tomcat下载
tomcat下载,安装,配置环境变量,安装过程忽略。
需要注意,tomcat默认端口8080,此端口很容易被其他服务占用,可根据自己需求修改tomcat端口号。
jenkins下载有多种类型,主要看当前的系统环境。一般我们选war包形式下载,后续结合tomcat进行安装。
jenkins安装
这里还是以war包结合tomcat来说,安装过程很简单,直接放到tomcat根目录webapps下,tomcat启动时会自动解压出一个jenkins文件夹。
jenkins home位置修改
jenkins安装后默认在C盘User下会生成个工作区(.jenkins),将来的插件、配置,以及创建的jobo都在此文件夹下,默认是不需要环境变量的,但是有些时候我们需要将此文件夹放到一个安全的位置,防止系统损坏或者重装系统这些配置丢失。这个时候就要修改工作区的环境变量了。
jenkins启动
启动tomcat, 输入jenkins的服务器地址http://xxx.xxx.xxx.xxx:8080/jenkins/
,一路下来按照提示进行操作,设置root用户信息,安装相关插件(刚开始不建议完全安装推荐的插件,可以选择跳过,你也可以看一下推荐的插件有哪些,选择性安装),然后就回到主页了:
安装插件
汉化: Localization: Chinese (Simplified)
问题:jenkins无法安装插件
找到插件管理最后一项:
滑到最下边找到Upload Site
,将默认的https改为http,保存修改:http://updates.jenkins-ci.org/update-center.json
如果一直下载失败,可全局开启vpn(个人建议),当然也可以将上边的地址切换为国内镜像:
http://mirror.xmission.com/jenkins/updates/current/update-center.json
jenkins角色配置
1. 添加用户
路径:Manage Jenkins->Manage Users
默认是你自己的超级用户root,你可以在此处添加第二个,第三个用户。
2. 设置用户权限
2.1 安装插件
Role-based Authorization Strategy
2.2 授权策略
路径:Manage Jenkins->Configure Global Security
保存。
2.3 角色管理和分配角色
路径:Manage Jenkins->Manage and Assign Roles
- 管理角色:就是把角色分一下类,例如超级管理员有哪些、QA有哪些、普通用户有哪些。
- 分配角色:就是把上边的角色分配到个人。
2.3.1 管理角色
这里配置三种权限角色:管理员模式、普通模式和匿名模式(Anonymous),配置项如上,将来普通模式可以分配给QA供打包测试,匿名模式可以分配给不登录模式下查看项目,当然如果有别的角色需要我们还可以再进行添加。
2.3.2 分配角色
这一步就是将权限分配到个人,Anonymous分配匿名模式下的权限。
以上只是基本的,我们还可以实现某人可以看到某些项目,或者针对某个项目有固定的权限等,这里就不说了。
简单了解系统设置
使用Html展示消息
1.安装插件
OWASP Markup Formatter Plugin
2.标记格式器
路径:Manage Jenkins->Configure Global Security
3.添加Html通知体
创建项目
安装插件:
- Git,因为我们的代码是git管理的。
- Gradle
配置构建环境
配置JDK、Git、Gradle相关变量,路径:Manage Jenkins->Global Tool Configuration
准备创建项目
1.创建项目
2.设置源码源
这里的凭据,如果项目地址在域里面,并且登录人是域用户,可以不用设置凭据了。
3.设置Gradle构建
主要关注两点:
- gradle版本:建议和项目gradle版本保持一致。
- 设置gradle打包命令,图上给的只是简单的。
clean:每次构建前clean一下项目;
assembleDebug:构建debug包
-stacktrace-debug:输出日志栈,打印日志信息。
更多gradle打包命令,可以进行百度,这里就不多说了。
4.构建后操作
构建后主要用于打包产物的输出、存档。
- 选择Archive the artifacts,匹配构建后的输出产物。
- 打包后我们会在项目首页看到最后一次构建成功后产物的归档。
5.项目构建
回到项目首页,点击Build Now,即可看到构建过程:
点击构建条,进到项目中可以查看日志输出:
6.自动清除历史构建
参数化构建
下载插件:
- Build With Parameters
- Persistent Parameter
说明:安装Build With Parameters Plugin
为了实现参数化构建,安装Persistent Parameter Plugin
为了实现构建时默认参数值取自上次构建的参数(当然如果要实现该功能,应该需要添加该插件对应的参数)
1. 设置构建类型
选择Choice Parameter
在gradle构建类型地方进行替换
2. 设置构建分支
选择Git Parameter
在源码管理的地方进行替换
当然你也可以选择Choice Parameter,类似设置构建类型一样,自己发挥咯。我自己就是用这种方式实现的。
放一张主页的截图:
展示二维码
为了展示二维码,需要知道二维码存放的具体路径,然后二维码的扫描出来的结果必须是apk的具体路径,所以需要经过以下几步:
- 将构建后的apk重命名,方便生成二维码(明确将来的apk存放地址)
- 将构建生成的apk,拷贝到服务器具体路径下,我这里的服务器就是我本机。
- 根据apk的服务器路径生成二维码,并存放在服务器某个位置。
生成二维码需要用到二维码生成库包,我这里分享一个:
生成二维码的命令:
java -jar [存放生成jar包的路径/QRCode.jar] url=[二维码扫描结果字符串] image=[二维码的名字.jpg] save=[二维码存放的位置]
window脚本
1.我们按照上边的过程将其写成window脚本命令,打开window batch command窗口
2.输入脚本内容:
set buildApk=app\build\outputs\apk\%BuildFlavor%\%BuildType%\*.apk
set apkName=ehistore_%BuildBranch%_%BuildFlavor%_%BuildType%_%BUILD_ID%
set jenkinsBuildDir=F:\Workspaces\project_other\tomcat-8.5.39\webapps\jenkins_build
set jenkinsBuildResDir=%jenkinsBuildDir%\res
set jenkinsBuildApkDir=%jenkinsBuildDir%\apks
set apkDownLoadUrl=http://192.xxx.x.xxx:8080/jenkins_build/apks/%apkName%.apk
ren %buildApk% %apkName%.apk
copy %buildApk% %jenkinsBuildApkDir%
java -jar %jenkinsBuildResDir%\QRCode.jar url=%apkDownLoadUrl% image=%apkName%.jpg save=%jenkinsBuildApkDir%
3.下载插件:Build Name and Description Setter
该插件主要用于修改构建名字和构建描述展示,利用描述内容我们来展示二维码。
添加插件部件:
Changes build description添加描述内容:
<img src="http://192.xxx.x.xxx:8080/jenkins_build/apks/ehistore_${BuildBranch}_${BuildFlavor}_${BuildType}_${BUILD_ID}.jpg" height="180" width="180"/>
4.具体设置如下
生成效果如下:
最后
本文主要带你玩转Jenkins中实现Android项目自动化打包,这是第一篇,后续还有二、三篇,如果喜欢顺便点赞+关注哦
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)