使用 Jenkins+Gradle 实现自动构建Android或IOS应用
本文介绍如何使用 Jenkins+Gradle 实现自动构建Android或IOS应用。
背景
随着业务需求的演进,工程的复杂度会逐渐增加,自动化的践行日益强烈。工程的自动化能有效提高生产效率,最大化减少人为出错的概率,实现一些复杂的业务需求应变。
例如,项目中测试人员每次需要测试新版本,都需要开发人员打包,放到FTP服务器上,测试人员然后从FTP服务器上拷贝到本地或手机上,再安装使用。尤其临近发版的一周,几乎每天都要新版本。这样的话,有两方面的影响:第一,打断了开发人员的开发进度;第二,开发人员打包效率低下,尤其是iOS,很容易出现证书不对等问题。
要解决这些问题,必须实现移动端应用的自动化构建。具体做法如下:
1、使用持续集成(CI)系统Jenkins,自动检测并拉取最新代码;
2、自动打包Android的apk和iOS的ipa;
3、自动上传到内测分发平台(有很多类似工具或网站,如蒲公英等)上;
4、再用内测号分发平台生成应用包下载二维码,供测试人员下载安装使用即可。
配置步骤
安装Jenkins
// 使用brew安装
brew install jenkins
// 启动,直接运行jenkins即可启动服务
jenkins
默认访问http://localhost:8080/,可进入jenkins配置页面。
安装Jenkins相关插件
点击系统管理>管理插件>可选插件,可搜索以下插件安装
- git插件(GIT plugin)
- ssh插件(SSH Credentials Plugin)
- Gradle插件(Gradle plugin) - android专用
- Xcode插件(Xcode integration) - ios专用
新建Job
主页面,新建 -> 构建一个自由风格的软件项目即可。
对于类似的项目,可以选择 -> 复制已有的 Item,要复制的任务名称里输入其他job的首字符会有智能提示。
配置git仓库
如果安装了git插件,在源码管理会出现Git,选中之后:
Repositories -> https://github.com/openproject/ganchai,如果是ssh还要配置Credentials。
Branch -> */master,选定一个要编译的分支代码。如下:
如果是私有的仓库(比如git://xxxxx.git),点击Credentials - Add,弹出对话框,配置sshkey最简单了:
配置自动拉取最新代码
在构建触发器中,有两种自动拉取代码并编译的策略:
- 设置Poll SCM,设置定时器,定时检查代码更新,有更新则编译,否则不编译。
- 也可以设置Build periodically,周期性的执行编译任务。
关于定时器的格式