Jenkins搭建Android持续集成(CI)
说明:
- 在公司经常看到QA测试那个持续集成平台,感觉挺好玩的,就搜了一下这方面的相关资料,自己搭建了一个本地Jenkins的环境。整个环境都是在本地,在规定的时间自动从github库中把最新的代码pull下来,通过Gradle命令自动编译生成apk。这里是整个步骤,记录一下。
软件环境:
- windows8 64bit
- jdk1.7
- gradle2.10
- tomcat7.0
下载安装
下载
首先安装tomcat,我安装的是tomcat7.0官网,解压开启服务,打开http://127.0.0.1:8080/测试。
下载jenkins,链接http://mirrors.jenkins-ci.org/war/latest/jenkins.war,将下载的jenkins.war包直接放到tomcat下的webapps目录,重启tomcat,在浏览器输入http://127.0.0.1:8080/jenkins,可以看到欢迎界面
安装插件
- 点击左边的系统管理,选择管理插件:
如果提示ASCII的警告,可以修改tomcat的server.xml配置,在Connector 标签添加上 URIEncoding=”UTF-8”
1
2
3 <Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
- 安装插件,在可选插件中找到git,gradle,lint这三个插件安装,下面是我安装过的图:
安装慢的话,可以把插件下载下来,手动上传插件或设置代理。
环境配置
- 安装插件之后,返回到系统管理,选择系统设置,配置jdk,git,gradle,email(emial可以选择配置)。
- gradle需要配置环境变量(gradle的bin目录设置到path系统变量)。
配置任务
新建工程
配置android工程,这里我以github上面的一个项目JenkinsDemo为例
首先新建一个任务,名称可以随便填
- 描述可以选填,高级选项配置这里可以选择使用自定义的工作空间:
源码管理
- 源码管理这里选择git,在”Repository URL”中输入git仓库的地址:https://github.com/xuwt/JenkinsDemo.git
- 点击增加认证方式,在认证方式对话框的”Kind”栏中选择”Username with password”,即选择用户名/密码的方式进行认证。
点击”Add”,添加该认证方式,点击”Credentials”栏的下拉框,选择刚刚添加的认证方式:
构建设置
- 构建触发器,勾选”Poll SCM”。输入”H 10 2”,这意味着”每周二的上午10:00”,Jenkins会自动获取服务器上最新的代码,并进行打包验证
Build periodically:周期进行项目构建(它不关心源码是否发生变化)
Poll SCM:定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作。
这里我选Poll SCM,(H/5 H(9-23) )
第一个参数代表的是分钟 minute,取值 0~59;
第二个参数代表的是小时 hour,取值 0~23;
第三个参数代表的是天 day,取值 1~31;
第四个参数代表的是月 month,取值 1~12;
最后一个参数代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。
如H/5 * 表示的就是每5分钟检查一次源码变化。
- 设置构建脚本,选择”Invoke Gradle script”,Gradle版本选择上一步在环境变量里面设置的(我这里选择的是Gradle2.4),在”Tasks”中输入”clean build”。即表示构建时,会执行命令”gradle clean build”.
- switch 就是 option,例如 —offline,task 是要执行的任务,例如 build, distTar。
- 设置构建完成后自动执行的任务,这里选择”E-mail Notification”,即构建完成之后自动发送邮寄通知。
构建工程
- 创建了JenkinsDemo工程之后,就会”每周二 10:00”自动从github上下载该工程并进行构建,同时我们也可以进行手动构建。
- 返回到Jenkins的Dashboard(即首页),然后点击”JenkinsDemo”名称右边的下拉图标弹出对话框,选择对话框中的”立即构建”开始构建。
- 构建进度条完成之后,刷新当前页面就可以看到是否构建成功了,上面的图是我构建成功之后的截图。如果构建失败的话,可以查看错误信息。
- 构建成功之后,打开工程,可以看到apk的输出路径和构建报告。
说明
- 这里我用的是匿名用户构建的,也可以用你添加的超级管理员名称作为帐号名注册一个帐号,这个帐号就拥有超级管理员权限了,这些暂时就不补充了。
- 项目暂时部署在我自己的开发机器上,按说应该部署到服务器上,用脚本将生成的apk move到指定的目录下,测试人员每天都到这个目录下去取最新的apk。
参考
http://blog.csdn.net/voiceofnet/article/details/45197883
http://my.oschina.net/uboluo/blog/157483?fromerr=YRkRbjtL
http://wangkuiwu.github.io/2015/08/07/jenkins-02/