您的位置:首页 > 移动开发 > Android开发

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 : Git

Repositories -> 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: