Jenkins自动编译Android Studio创建的工程
2015-08-21 20:21
525 查看
前提
Jekins服务器所在的Ubuntu上安装下列软件Android SDK - 记住版本号,后面需要在Gradle脚本中设置
Android SDK Build-tools
Android SDK Platform
Android Support Library - for eclipse build
Android Support Repository - for android studio build
这里做个约定SDK安装在系统 /home/jenkins/tools/android/sdk 路径下: 以 jenkins 用户身份为 Owner
Gradle 参考 Ubuntu之安装Gradle
增加Gradle编译AS工程需要的环境变量 ANDROID_HOME
sudo -u jenkins -H vim /home/jenkins/.profile
add : export ANDROID_HOME=/home/jenkins/tools/android/sdk
如果是Ubuntu 64位系统,而因为SDK的工具为32位的,所以需要安装附加库 - 参考 Ubuntu 64位机器上运行32位程序
如果使用的是Ubuntu默认安装的OpenJDK,那么编译时候可能会出现找不到 tools.jar 的错误,需要安装完整版的OpenJDK - 参考 Ubuntu默认安装OpenJDK没有tools.jar
Gitlab增加工程
root登录 http://gitlab.zjc.com
组test-group 下建立工程 test-android-studio-project
可以得到此项目的SSH地址:git@gitlab.zjc.com:dev-group/test-android-studio-project.git使新工程支持 git review
命令
Gitlab上的管理员账户其SSH Key所在的用户为admin账户$ su - admin $ git clone git@gitlab.zjc.com:dev-group/test-android-studio-project.git $ cd test-android-studio-project/ $ vim .gitreview
文件内容为:
[gerrit] host=review.zjc.com port=29418 project=test-android-studio-project.git
添加.gitreview到版本库
$ git add . $ git commit . -m 'add .gitreivew file by admin' $ git push origin master $ exit
Gerrit克隆Gitlab上的新工程 test-android-studio-project
Gerrit上的管理员账户其SSH Key所在的用户为admin账户Gerrit上创建新工程
$ su - admin $ ssh -p 29418 admin@vzjc.com gerrit create-project test-android-studio-project $ exit
Gerrit上新工程变为Gitlab上新工程的克隆库
$ cd /home/gerrit/gerrit/git $ sudo -u gerrit -H rm -fr test-android-studio-project.git $ sudo -u gerrit -H git clone --bare git@gitlab.zjc.com:dev-group/test-android-studio-project.git
修改在Gerrit系统的复制功能配置文件
$ sudo -u gerrit -H vim /home/gerrit/gerrit/etc/replication.config
在文件末尾添加:
[remote "test-android-studio-project"] projects = test-android-studio-project url = git@gitlab.zjc.com:dev-group/test-android-studio-project.git push = +refs/heads/*:refs/heads/* push = +refs/tags/*:refs/tags/* push = +refs/changes/*:refs/changes/* threads = 3
重新启动 Gerrit 服务
$ sudo /etc/init.d/gerrit restart
Jenkins上为新工程创建自动编译任务
用admin账户登录http://jenkins.zjc.com
创建新任务 test-android-studio-project
Source Code Management : GitRepositories -> Repository URL : http://review.zjc.com:8082/p/test-android-studio-project.git
Advanced ->Refspec->
refs/changes/*:refs/changes/*
Branches to build -> Branch Specifier (blank for ‘any’) : $GERRIT_REFSPEC
Build Triggers : Gerrit Trigger
Trigger on : 点击 Add 分别添加 Patchset Created 和 Draft Published
Dynamic Trigger Configuration
Type Pattern : test-android-studio-project
Branches : master
Build
Add build step -> Execute Shell
Command : gradle clean build
Add post build step -> E-mail Notification
Recipients : admin@vzjc.com
用户使用工程、测试
$ git clone git@gitlab.zjc.com:dev-group/test-android-studio-project.git
放入Android Studio工程到此目录。注意:
build.gradle 文件中要写 SDK 中存在的Platform和CompileTool和兼容库版本号
编译后的结果存在于 /var/lib/jenkins/jobs/test-android-studio-project/workspace/app/build/outputs/apk 中
编译的工作目录以及出错信息可以在 Jenkins系统上相应的位置看到
$ git add .
如果有必要,设置正确的 user.name 和 user.email
$ git commit -m 'android project' - s
$ git review
相关文章推荐
- android下设备权限为777却无法访问的问题
- Android相关图书推荐
- 新建Android项目时避免继承ActionBarActivity并去掉titleBar
- 浅析WPhone、Android的Back与Home键
- Ubuntu 12.04成功编译android4.4和android4.0源码
- Android 时间格式化符号HH无法识别
- Android常见的几个控件(TextView,EditText,Button)
- android 组件 ProgressDialog实例
- android bitmap的放大缩小
- android 组件GridView实例
- Android Fragment(一)---简介
- android 组件SeekBar实例
- Android中实现垂直滑动中水平滑动毫无障碍
- android 组件ProgressBar实例
- Java中数据解析之_JSON(Android官方内置解析器)
- android解决同一个界面上ScrollView和百度地图(ListView等可滚动控件)滚动冲突问题
- Android自定义控件<迅雷进度条>
- Android Api Demos登顶之路(四十二)Fragment-->Nesting Tabs
- Android:无法删除DDMS中File Explorer中文件,提示read-only file system
- android 组件AutoCompleteTextView和MultiAutoCompleteTextView实例