操作系统安装, 请查看这里
系统中安装相关软件
相关软件都统一安装在/soft目录下, 以root权限执行
mkdir /soft
安装一些工具软件
yum install -y unzip git xulrunner.i686 wget
xulrunner.i686 用于在64位系统上执行Android build tools里的工具软件
JDK 安装与配置
- 点击这里, 下载jdk-8u121-linux-x64.tar.gz.
- 将下载到的jdk复制到/soft目录下
- 解压缩jdk
#cd /soft
#tar -xf jdk-8u121-linux-x64.tar.gz
- 配置环境变量
echo 'export JAVA_HOME=/soft/jdk1.8.0_121' >> /etc/profile
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
- 使环境变量生效
. /etc/profile
- 验证jdk的安装
#java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
出现上述提示, 说明已经安装成功.
Gradle 安装与配置
- 点击这里 下载Android项目的相应版本的gradle.(假定为gradle-3.4.1)
- 将下载到的gradle-3.4.1-all.zip 复制到/soft目录下
- 解压缩gradle-3.4.1-all.zip
#cd /soft
#unzip gradle-3.4.1-bin.zip
验证Gradle 的配置
# /soft/gradle-3.4.1/bin/gradle -v
------------------------------------------------------------
Gradle 3.4.1
------------------------------------------------------------
Build time: 2017-03-03 19:45:41 UTC
Revision: 9eb76efdd3d034dc506c719dac2955efb5ff9a93
Groovy: 2.4.7
Ant: Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM: 1.8.0_121 (Oracle Corporation 25.121-b13)
OS: Linux 3.10.0-514.el7.x86_64 amd64
出现上面的提示说明Gradle已经安装完毕.
Android SDK tools安装与配置
- 点击这里 下载android-sdk_r24.4.1-linux.tgz
- 将android-sdk_r24.4.1-linux.tgz拷贝到/soft
- 解压缩android-sdk_r24.4.1-linux.tgz
#cd /soft
#tar -xf android-sdk_r24.4.1-linux.tgz
配置环境变量
#echo 'export ANDROID_HOME=/soft/android-sdk-linux' >> /etc/profile
根据Android项目的需要下载对应版本的tools, 比如我们app需要的是android-23, build-tools-23.0.2(详情查看主module的build.gradle)
#/soft/android-sdk-linux/tools/android update sdk --no-ui --all --filter build-tools-25.0.0,android-24,extra-android-m2repository
许可协议中输入y, 继续安装
因为没有同意协议, 可能无法build所以
wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
接压缩后得到tools/目录
将tools目录里的内容复制到/soft/android-sdk-linux/tools下, 主要是要使用它里面的sdkmanager
cd /soft/android-sdk-linux/tools/bin
./sdkmanager --licenses
同意协议继续
Android NDK 安装与配置
略
gitlab上配置SSH
- 生成sshkey
# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
2f:20:81:45:60:b8:49:85:34:63:02:19:0e:a5:e3:3f root@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
|BX*+o |
|B=oo |
|++. . |
|+. . |
| . . . S |
| . . . . |
| E . . |
| . . |
| |
+-----------------+
将生成的公钥的内容, 添加到gitlab中自己的SSH KEY的配置中.
这样CI服务器就可以从gitlab中下载代码了.
安装配置Tomcat
- 点击这里下载apache-tomcat-8.0.45
- 复制apache-tomcat-8.0.45.tar.gz到/soft目录
- 解压apache-tomcat-8.0.45.tar.gz
tar -xf apache-tomcat-8.0.45.tar.gz
启动Tomcat
# cd apache-tomcat-8.0.45/bin
# ./startup.sh
Using CATALINA_BASE: /soft/apache-tomcat-8.0.45
Using CATALINA_HOME: /soft/apache-tomcat-8.0.45
Using CATALINA_TMPDIR: /soft/apache-tomcat-8.0.45/temp
Using JRE_HOME: /soft/jdk1.8.0_121
Using CLASSPATH: /soft/apache-tomcat-8.0.45/bin/bootstrap.jar:/soft/apache-tomcat-8.0.45/bin/tomcat-juli.jar
Tomcat started.
在浏览器中输入
http://ci_machine_ip:8080/
如果看到了Tomcat的欢迎页, 则配置正确.
安装配置Jenkins
- 点击这里下载jenkins.war
- 将jenkins.war复制到/soft/apache-tomcat-8.0.45/webapps中
- 重启tomcat
#cd /soft/apache-tomcat-8.0.45/bin
#./shutdown.sh
#./startup.sh
浏览器中输入
http://ci_machine_ip:8080/jenkins
如果出现了要求输入密码的页面, 说明已经配置好了.
按照说明, 输入密码后继续配置
- 安装推荐的配置
- 根据提示配置管理员账户
- 创建一个任务
- 填写项目名字(用英文), 这个名字将被作为下载代码的目录
比如AndroidDev - 构建一个自由风格的软件项目
- 点击OK按钮
- 源码管理选择git, 输入仓库地址, branch to build 填写要构建的分支
- 构建 -> 增加构建步骤 -> Execute shell
输入/soft/buildAndroidDev.sh - 点击左下角保存
- 编写构建脚本vi /soft/buildAndroidDev.sh
#!/bin/bash GRADLE=/soft/gradle-3.4.1/bin/gradle PROJECT=/root/.jenkins/workspace/AndroidDev $GRADLE -b $PROJECT/build.gradle clean $GRADLE -b $PROJECT/build.gradle assembleRelease
- 填写项目名字(用英文), 这个名字将被作为下载代码的目录
- 完善脚本, 对打包好的apk进一步处理
删掉没用的东西
#rm -rf /soft/*.zip /soft/*.tgz /soft/*.tar.gz
杂项配置
时区
# cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
cp: overwrite ‘/etc/localtime’? y
#
Jenkins时区
如果jenkins的时区不正确, 可以在修改tomcat的时区
在tomcat/bin/catalina.sh中找到
#JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"
在它的下面加入
JAVA_OPTS="$JAVA_OPTS -Duser.timezone=Asia/Shanghai"
Gradle 配置
#echo 'org.gradle.daemon=true' ~/.gradle/gradle.properties
#echo 'org.gradle.jvmargs=-Xmx5120m' ~/.gradle/gradle.properties
#echo '--parallel-threads=4' ~/.gradle/gradle.properties
注意
- 配置org.gradle.jvmargs=-Xms5120m时需要根据机器实际的内存情况配置, 一定要小于实际的内存.
- 配置–parallel-threads时要根据实际CPU的核心数量配置, 不要超过CPU的实际核心数量