Fork me on GitHub

Jenkins-02:配置 Android 自动构建

目录

  1. 1. Jenkins 配置
    1. 1.1. 配置 Android SDK
    2. 1.2. 配置 Git
    3. 1.3. 配置 Gradle
      1. 1.3.1. 下载 Gradle
      2. 1.3.2. 配置 GRADLE_HOME
      3. 1.3.3. 配置 Jenkins Gradle
  2. 2. 构建打包任务
    1. 2.1. 新建
    2. 2.2. 配置任务
      1. 2.2.1. 源码管理
      2. 2.2.2. 配置构建触发器
      3. 2.2.3. 配置构建任务
      4. 2.2.4. 配置构建后操作
  3. 3. 运行一次构建
  4. 4. 参考

安装配置所需的 Android SDK , Gradle,Git,以及如何构建测试任务,打包等。

Jenkins 配置

配置 Android SDK

由于在国内的特殊环境,下载 Android SDK 不太方便,这里使用国内的第三方网站提供的AndroidDevTools
将下载下来的压缩包解压缩到/opt/android_sdk目录下。
打开终端,编辑 .bashrc :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
vi ~/.bashrc
# 在文件最后添加如下代码
# ANDROID
export ANDROID_HOME=/opt/android_sdk
export PATH=${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools:$PATH
# :wq 保存并退出
source ~/.bashrc
# 测试 配置是否成功
android -h
# 以下是输出内容
Usage:
android [global options] action [action options]
Global options:
-s --silent : Silent mode, shows errors only.
-v --verbose : Verbose mode, shows errors, warnings and all messages.
--clear-cache: Clear the SDK Manager repository manifest cache.
-h --help : Help on a specific command.

打开 Android SDK Manager 下载

1
2
cd /opt/android-sdk-linux
tools/android update sdk

参考AndroidDevTools提供的修改在线更新镜像服务器,这里使用腾讯的:

腾讯Bugly 镜像:
android-mirror.bugly.qq.com 端口:8080
腾讯镜像使用方法:http://android-mirror.bugly.qq.com:8080/include/usage.html

使用方法:

  1. 启动 Android SDK Manager ,打开主界面,依次选择『Tools』、『Options…』,弹出『Android SDK Manager - Settings』窗口;
  2. 在『Android SDK Manager - Settings』窗口中,在『HTTP Proxy Server』和『HTTP Proxy Port』输入框内填入上面镜像服务器地址(不包含http:// ,如下图)和端口,并且选中『Force https://… sources to be fetched using http:// …』复选框。设置完成后单击『Close』按钮关闭『Android SDK Manager - Settings』窗口返回到主界面;
  3. 依次选择『Packages』、『Reload』。

然后下载所需要的如:build-toolsplatform-tools等。
提示: 如果是全新安装,需要下载的有:

  • build-tools
  • platform-tools
  • surpport-library
  • surpport-repository
    到此 Android SDK 环境变量配置完成。

额外的配置:
为了能让 Android appt 正常工作,需要安装两个包:

1
sudo apt-get install lib32stdc++6 lib32z1

配置 Git

Ubuntu 14.0.4 下默认安装好了 Git,输入下面的命令测试一下:

1
git --version

输入下面的命令找到 git 路径:

1
2
3
which git
# 以下是输出
/usr/bin/git

打开 Jenkins 的 系统管理->系统设置,找到 Git 配置,点击Git 安装...,取消勾选
自动安装,然后填写namePath to Git executable:
jenkins-git

配置 Gradle

由于国内特殊环境,下载官方的 Gradle 不太方便,这里使用第三方提供的下载地址。

下载 Gradle

打开AndroidDevTools-Gradle,下载最新版gradle-2.10-all.zip
下载完成后打开终端,解压到/opt/根目录下:

1
2
3
mv gradle-2.10-all.zip /opt/
cd /opt && unzip gradle-2.10-all.zip
# 这时 gradle 解压到 /opt/gradle-2.10/ 目录下

配置 GRADLE_HOME

在终端里输入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
vi ~/.bashrc
# 输入以下内容:
export GRADLE_HOME=/opt/gradle-2.10/
export PATH=${GRADLE_HOME}/bin:$PATH
# :wq 保存后退出编辑,并通过命令使脚本生效
source ~/.bashrc
# 测试 gradle 是否配置成功
gradle -v
# 以下是输出内容表示配置成功
------------------------------------------------------------
Gradle 2.10
------------------------------------------------------------
Build time: 2015-12-21 21:15:04 UTC
Build number: none
Revision: 276bdcded730f53aa8c11b479986aafa58e124a6
Groovy: 2.4.4
Ant: Apache Ant(TM) version 1.9.3 compiled on December 23 2013
JVM: 1.8.0_60 (Oracle Corporation 25.60-b23)
OS: Linux 3.16.0-30-generic amd64

配置 Jenkins Gradle

打开 Jenkins 的 系统管理->系统设置,找到 Gradle 配置,点击Gradle 安装...,取消勾选
自动安装,然后填写nameGRADLE_HOME:
jenkins-gradle

最后点击应用->保存即可。

构建打包任务

新建

新建一个任务,点击新建,然后在右侧输入:Item 名称,勾选 构建一个自由风格的软件项目,最后点击OK
create new job

配置任务

源码管理

  • 如果是 Git :
    git-repo
    输入自己的 git 仓库地址,然后需要添加新的Credentials,点击Add来添加一个新的
    git-cred
  • 如果用的是 Subversion :

    Repository URL: svn 的地址,如果输入的地址需要输入用户名和密码,将自动跳出红色的提示信息,点击”enter credential” 进入设置svn 用户名。

配置构建触发器

每当 svn 上项目版本更改后,我就自动构建,然后跑一次单元测试,当然也可以改成每天一次或者每小时一次来监控 svn 上项目版本更改情况。

勾选Poll SCM,根据日程表来并且当 svn 库有更新时触发构建操作。
poll-scm
H 21 * * *表示每天晚上九点执行一次。

第一个参数代表的是分钟 minute,取值 0~59;
第二个参数代表的是小时 hour,取值 0~23;
第三个参数代表的是天 day,取值 1~31;
第四个参数代表的是月 month,取值 1~12;
第五个参数代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。
如H/5 表示的就是每5分钟检查一次源码变化。

配置构建任务

点击添加构建步骤,然后选择Invoke Gradle script,来执行 Gradle 命令:
invoke gradle
这里执行了 gradle clean build --stacktrace三个任务。

配置构建后操作

点击添加构建后操作步骤,然后选择E-mail Notifaction,如:
这样当构建失败可以发送邮件通知。
email-notifaction
最后点击 应用保存

运行一次构建

点击左侧的立即构建这时就会对我们配置的任务进行一次构建,点击#1进入,
然后点击侧边栏中的Console Output,可以看到输出日志。
build-result
构建如果失败会收到一份邮件。

注意: 如果构建够出现错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
:app:mergeDebugResourcesjava.io.IOException: Cannot run program "/opt/android-sdk-linux/build-tools/23.0.1/aapt": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at com.android.builder.png.AaptProcess$Builder.start(AaptProcess.java:163)
at com.android.builder.png.QueuedCruncher$1.creation(QueuedCruncher.java:106)
at com.android.builder.tasks.WorkQueue.run(WorkQueue.java:203)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:248)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 4 more
Thread(png-cruncher_1) has a null payload

参考上面的配置 Android SDK 部分。

参考

本文总阅读量