Android-jenkins搭建指南&踩坑過程

                                                                                                                                                                                                     以MEET 搭建jenkins編包環境爲例,詳細介紹搭建流程及踩坑經歷。目前jenkins編包依賴JDK環境,gradle打包依賴於android-sdk,所以先搭建基礎支持。

       本文所用的linux 環境爲:(命令:lsb_release -a)

       lsb_release –a: 查看Linux系統版本

      Description:    CentOS release 6.3 (Final)

      uname –a : 查看內核版本

       Linux *** 3.10.0_3-0-0-15 #1 SMP Fri Jan12 18:18:11 CST 2018 x86_64 GNU/Linux

       ssh交互端:      SecureCRT

一.JDK

手動上傳JDK安裝包,並設置環境變量

1.    JDK安裝包獲取方式:本地下載,sz 上傳(java 1.8的版本),下載地址如下:(http://www.oracle.com/technetwork/java/javase/downloads/index.html)

2.    解壓到指定文件夾

3.    針對所有用戶,可在/etc/profile新增環境變量如下

JAVA_HOME=**/jdk1.8.0_171  (這裏請替換成你的完整路徑)

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

PATH=$JAVA_HOME/bin:$PATH

JRE_HOME=$JAVA_HOME/jre

exportJAVA_HOME CLASSPATH PATH

如果僅在自己的用戶下面添加,以work賬戶爲例,在/home/work/.bash_profile,按照如上添加就好。

4.    source/etc/profile (或者 source /home/work/.bash_profile)使環境變量生效 

5.    java–verison 驗證是否安裝成功

二.Android-sdk

手動上傳android-sdk包,或線上直接下載,並設置環境變量

1.    Android-sdk安裝包獲取方式

a)    本地下載,sz上傳(同Java)

b)    命令獲取

wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz

安裝包解壓後需要下載platforms, build-tools 。 此時同樣可使用命令下載及更新,在andriod安裝目錄找到tools,使用android 或sdkmanager命令來進行更新。

獲取服務器上最新的android sdk:android list sdk

列出所有的sdk : android list sdk --all

更新sdk命令:android update sdk (該命令是更新所有的可用的,可使用—filter 更新部分sdk)。 具體例子如:android update sdk --no-ui  --filter 1,2 –-all。 其中1,2指的是 list sdk後的編號。

如果直接無法獲取到,可以通過使用國內的android 鏡像,國內的Android代理鏡像服務器:

http://mirrors.neusoft.edu.cn 端口:80

http://ubuntu.buct.edu.cn/端口:80

http://ubuntu.buct.cn/端口:80

http://sdk.gdgshanghai.com端口:8000

IPv6:http://ubuntu.buct6.edu.cn/ 端口:80

使用指定代理更新的方式如下:

android update sdk --no-ui --filter 1 --proxy-hostubuntu.buct.edu.cn --proxy-port 80 -s –all

sdkmanager更新方式具體請自行查詢。

2) 配置環境變量,同樣可配置在/etc/profile中,或者自己工作賬戶目錄的配置文件下,如/home/work/.bash_profile,配置如下:

exportANDROID_HOME=**/android-sdk-linux (請替換成具體的目錄)

exportPATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools/25.0.0:$PATH

三.Jenkins

Jenkins目前支持兩種安裝方式,一種是使用yum 直接安裝,一種是結合tomcat 進行安裝。本文使用的是tomcat 的方式,因此,簡略的介紹通過yum 安裝

1) yum 安裝

a)    添加jenkins源

sudowget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/jenkins.repo

b)    rpm增加jenkins的key

sudo rpm--import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

c)     安裝jenkins

yum install jenkins

d)    使用命令啓動jenkins

sudo service jenkinsstart

在瀏覽器中輸入:http://<服務器ip>:port/ 就可以進入Jenkins界面直接使用了 。其中port爲tomcat服務使用的端口,可自定義。

e)    停止Jenkins服務的命令爲:

sudo service jenkins stop

f)     Jenkins相關目錄介紹

安裝目錄:/var/lib/jenkins/

配置文件目錄:    /etc/sysconfig/jenkins

日誌目錄:/var/log/Jenkins

可以在配置文件中修改jenkins主目錄(JENKINS_HOME),jenkins用戶(JENKINS_USER),jenkins端口(JENKINS_PORT)等

2) tomcat 安裝

a)    下載jenkins.war包, 下載地址:https://jenkins.io/download/


b)    下載apache-tomcat 並解壓至指定目錄,確保tomcat正常啓動,可以修改tomcat服務端口號

c)     移動jenkins.war 至 **/apache-tomcat-9.0.2/webapps

d)    瀏覽器輸入http://<服務器ip>:port/jenkins/ , 進入jenkins配置頁面

e)    首先進入會提示輸入初始密碼,直接複製指定路徑的初始密碼即可


f)     輸入完成後,會進入插件下載頁面,如果進入正常,則根據需求選擇添加插件的類型,如果不正常,可能出現如下圖所示:

可通過以下方式解決(首先請確保linux 機器可有網絡

瀏覽器另起一個tab輸入:

http:// <服務器ip>:port/jenkins/ pluginManager/advanced

將升級站點的url替換爲上圖所示,查看該頁頂部

可選插件處是否有插件列表,如果依舊爲空,則可將url 替換爲:

http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json

再次查看,勾選相應的插件進行下載,因爲我們採用git來管理工程,所以git相關的插件一定要下載下來。

g)    安裝成功後,創建賬戶,並進入首頁

h)    構建自己的第一個工程,並進行配置,需配置工程名,源碼獲取方式,構建方式等。

工程拉取下來存儲在用戶根目錄的.jenkins/workspace下面。

四.Gradle打包

服務器採用gradlew命令行編包,或者jenkins的gradle插件進行打包,其均需要在jenkins工程的配置頁面進行配置。

本文采用的是gradlew命令行打包。Gradlew是包裝器,自動下載包裝器裏定義好的gradle 版本,保證編譯環境統一,gradle 是用本地的gradle版本。如果服務器上工程很多,每一個工程要求的gradle版本都不一致時,建議使用gradlew命令。

本文使用的命令如下圖所示:

其中flavor 和 buildtype是自己增加的變量,對應的是工程內部build.gradle中不同的取值,具體需按照工程要求配置。-P後面跟的是我們在build.gradle中設置的可變參數,同需要根據自己的需要更改。

       由於我們工程採用的buidToolsVersion和targetVersion都是25,編譯過程中會提示

即使用aapt編譯資源文件時,會出現,提示我們25的aapt需要glibc_2.14的支持。

       查看linux機器支持的glibc版本:

      

發現只安裝到2.12,查看libc.so.6鏈接到的glibc版本爲libc-2.12.so


所以需要升級linux系統的glibc版本。(升級有風險,操作需謹慎)

升級步驟如下(一定放在root用戶下進行,首先請進入你需要放置安裝包的路徑):

1. wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz    #下載glibc 2.14

2. wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.14.tar.gz  #下載glibc-ports-2.14

3. tar -xvf glibc-2.14.tar.gz

4. tar -xvf glibc-ports-2.14.tar.gz

5. mv glibc-ports-2.14 glibc-2.14/ports

6. mkdir glibc-build-2.14   # 在當前目錄新建build 文件夾

7. cd glibc-build-2.14/     # 進入到該build文件夾

8.  ../glibc-2.14/configure  --prefix=/usr #設置其安裝目錄

9. make –j4  #以4核進行編譯

10. make install  #安裝

11.  ll /lib64/libc.so.6   #檢查更新

最終顯示的應該爲:

以上8,9,10任何一步出錯,都可能會導致失敗。第8,9步一定不能有失敗提示,第10步有失敗提示的時候,可以先進性11步的檢查,如果失敗的話,建議多嘗試幾次。

       安裝好glibc_2.14後,gradle可正常進行。

五.取包

由於我們的jenkins是安裝在tomcat上的,所以可以直接在tomcat配置中中增加context的靜態目錄配置,以獲取安裝包。具體操作爲,進入tomcat的conf目錄,打開server.xml,在host標籤下增加如下context配置。


其中docBase即我們的安裝包放置的絕對路徑。此時便可通過http://<服務器ip>:port/ 訪問該路徑下的內容。


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