使用Jenkins搭建Android打包工具

操作系統安裝, 請查看這裏

系統中安裝相關軟件

相關軟件都統一安裝在/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

如果出現了要求輸入密碼的頁面, 說明已經配置好了.
按照說明, 輸入密碼後繼續配置

  • 安裝推薦的配置
  • 根據提示配置管理員賬戶
  • 創建一個任務
    1. 填寫項目名字(用英文), 這個名字將被作爲下載代碼的目錄
      比如AndroidDev
    2. 構建一個自由風格的軟件項目
    3. 點擊OK按鈕
    4. 源碼管理選擇git, 輸入倉庫地址, branch to build 填寫要構建的分支
    5. 構建 -> 增加構建步驟 -> Execute shell
      輸入/soft/buildAndroidDev.sh
    6. 點擊左下角保存
    7. 編寫構建腳本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的實際核心數量

問題處理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章