操作系統安裝, 請查看這裏
系統中安裝相關軟件
相關軟件都統一安裝在/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 [email protected]
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的實際核心數量