前提

  • 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
  • Build Triggers : Gerrit Trigger
    • Trigger on : 点击 Add 分别添加 Patchset CreatedDraft 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
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐