之前App在提交测试和最终部署的过程中App打包一直是由开发人员来完成的,由于项目比较大, 再加上Android打包本身就比较慢,所以每次打包还是很耗时的。并且按照严格的研发流程来讲,开发人员应该只负责提交代码,测试和部署过程中的打包都不应该由开发人员来完成,所以我就想着给测试和运维人员搭建一个可以自动打包的环境。后来在网上看到很多网友分享使用Jenkins进行Android自动打包的文章,几经尝试终于把环境搭建起来了。
Jenkins安装
Jenkins作为一个开源的持续集成工具,不仅可以用来进行Android打包,也可以用来进行iOS打包、NodeJs打包、Jave服务打包等。官方地址为:https://jenkins.io/。Jenkins是使用Java开发的,官方提供一个war包,并且自带servlet容器,可以独立运行也可以放在Tomcat中运行。我们这里使用独立运行的方式。运行命令为:
java -jar jenkins.war
运行成功,打开浏览器访问http://locahost:8080
,首次运行会要求输入管理员密码,Jenkins在首次运行时生成的,会在控制台打印出来或者按照页面提示的文件路径查看管理员密码。控制台输出的密码:
*************************************************************
*************************************************************
*************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
b7004e63acb940368e62a5dacaa2b246
This may also be found at: /Users/dmx/.jenkins/secrets/initialAdminPassword
第一次运行的页面
输入密码之后点击continue选择要安装的插件
由于Jenkins的插件之间存在依赖关系,并且Jenkins不会帮我们自动安装依赖的插件,所以插件安装过程比较容易出错,所以我们建议自己选择要安装的插件,不选择Jenkins建议安装的插件。点击Select plugins to install
进入下一个页面
首先把默认选中的插件都取消掉,然后选择我们要安装的插件,对于Android打包来讲一般需要的插件有
- Git plugin
- Gradle Plugin
- Email Extension Plugin
- description setter plugin
- build-name-setter
- user build vars plugin
- Post-Build Script Plug-in
- Branch API Plugin
- SSH plugin
- Scriptler
- Git Parameter Plug-In
- Gitlab plugin
如果插件安装过程中由于依赖关系造成安装失败,可以根据错误信息先安装依赖的插件再重新安装需要的插件。
插件安装完成之后按照提示创建一个管理员账号即可使用,登录之后进行首页面。
配置环境变量
需要配置的环境变量有Android Home、JDK目录、Gradle目录。首先点击系统管理=>系统设置,选中Environment variables
,然后新增Android Home环境变量
然后在系统管理=>Global Tool Configuration中配置JDK目录和Gradle目录
JDK和Gradle建议提前下载好放到服务器上,不要使用自动安装,Jenkins自动下载安装非常慢
配置打包脚本
Jenkins配置完成之后需要我们来完善我们的gradle脚本让它能够满足我们的打包要求,既能支持在Jenkins中打包