#使用Jenkins进行CI集成化测试和自动化部署(二)

上一篇文章简单介绍了Jenkins的配置环境,在开发团队中我们一般会使用Jenkins完成几个工作
1 程序员开发代码后自动部署到开发服务器验证流程,查看页面效果
2 QA部门每天对开发部门的代码做静态检查,并对接口进行自动化测试,给出测试报告发给开发组
3 进入集成测试阶段后,开发组转入集中修复Bug阶段,测试组需要构建测试环境和Android测试环境包
4 集成测试阶段完成以后,发布人员需要Jenkins自动打包后将服务器段程序发送到生产服务器等待发布。

##1 安装Android SDK
要让Jenkins能够编译Android那么第一步是Android SDK的下载,由于GFW的存在我们的SDK下载会非常慢,因此我们需要在国内网站找到对应SDK包进行下载。推荐地址:

下载SDK、SDK Tools、Platform Tools、Platform Package, NDK分解解压到目录后vim /etc/profile设置环境变量:

#set Android enviroment
export ANDROID_HOME=/usr/local/androidsdk
export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH

##2 更新Android SDK
安装完成后需要更新,进入SDK安装目录的tools目录之后执行

android update sdk --no-ui

确认之后就可以使用命令行进行编译了 gradle clean assemble,如果没有安装gradle那么需要安装gradle并配置gradle环境路径。

##3 找不到libgc.so.1
一般来说服务器安装的都是64位版本但是编译安卓时候需要32位的gcc开发库,所以这个报错一般都是需要安装32位的GCC就可以,CentOS安装方法如下

# yum install glibc*.i686
# yum install zlib*.i686
# yum install libstdc++.i686

4 找不到libgc.so.6或者提示

因为CentOS6 安装的glibc 64位库的版本过低,造成以上报错,那么解决这个问题的方法是重新编译一个新的2.14或者更高的版本,glibc可以从http://ftp.gnu.org/gnu/glibc/找到对应版本,然后我选择2.15

# cd /usr/local
# wget http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz  
# wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.15.tar.gz  
# tar -xvf  glibc-2.15.tar.gz  
# tar -xvf  glibc-ports-2.15.tar.gz  
# mv glibc-ports-2.15 glibc-2.15/ports  
# mkdir glibc-build-2.15   
# cd glibc-build-2.15  
# ../glibc-2.15/configure  --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin  
# make   
# make install

安装完成后进入glibc-build-2.15目录查看

# strings libc.so.6 | grep GLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_PRIVATE

5 通过jenkins构建

进入jenkins 新建一个自由风格工程,在源码选择里面选定分支(后期可以使用参数化构建来手动选定分支),然后在构建里选择Execute shell,填入如下代码

# !/bin/sh
# cd ${WORKSPACE}
# pwd
# /usr/local/gradle-3.4.1/bin/gradle assemble

再往后第一个操作就是发布通过发布附件的形式发布进行下载apk或者就是直接发布到蒲公英(需要插件),再然后就是标准的发布Email的模板了,通过定制Email模板发布给指定收件人。