記錄一下搭建 Jenkins的過程
準(zhǔn)備工作
- 官網(wǎng)下載 jenkins 的 war 包
- 官網(wǎng)下載 tomcat 的二進(jìn)制的壓縮包
- 準(zhǔn)備好 android sdk
配置 jenkins
將 jenkins 的war 包移動到 tomcat的 webapp 目錄下,啟動 tomcat。訪問具體jenkins 的路徑即可。
這樣就打開了啟動了 jenkins了并部署到了 tomcat 中。訪問瀏覽器 localhost:8080/jenkins 進(jìn)入 jenkins 的web 管理界面。根據(jù)需要安裝對應(yīng)的插件。這里我需要的是 gitlab gradle,gitlab hook。安裝完插件后可以開始創(chuàng)建項目了。
這里 git 需要配置一下訪問資格,賬號密碼,ssh都可以。
-
構(gòu)建采用 gradle。通過 gradle wrapper 的方式。注意勾選一下 Make gradlew executable
配置編譯環(huán)境
配置 Android sdk環(huán)境,需要配置一下ANDROID_HOME(沒有配置 Jenkins 會告訴需要你配置)
# Android Dev
export ANDROID_HOME="/Users/zhangjun/Library/Android/sdk"
export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH
配置gitlab hook
意思就是說當(dāng) gitlab 上有新的提交或者其他條件的時候會觸發(fā) jenkins 編譯。具體配置可以參考 gitlab hook 插件說明。我這邊是在 gitlab - prpject - setting - webHooks中添加一個 url。具體如下:
http://your-jenkins-server/gitlab/build_now
這里需要注意,如果你 jenkins具體項目編譯配置中配置了具體的分支,那么只有你在配置的分支上 push 你代碼才能觸發(fā)鉤子。test hook 默認(rèn)是在 master 上觸發(fā)的。這點需要注意。舉個例子:
假如你 Jenkins 配置中是編譯 dev 分支的,那么 test hook 是不會生效的。必須手動在 dev 分支上提交一個代碼才能觸發(fā)自動編譯。
代理設(shè)置
這是我國的一個特色。考慮到一些包下載不下來,所以需要自行配置代理,最好是 http 代理。我這邊是 mac。截圖如下。

另外這里需要注意一下。忽略主機之間用逗號(,)而不是中文的頓號(、)。
一些問題
一般來說 gradle.propertity 文件是加入忽略的。里面配置了gradle 需要讀取的一些配置文件和代理設(shè)置。考慮到服務(wù)器的代理和本機代理不一致。這個需要加入忽略,然后服務(wù)端手動加入這兒文件。將里面的代理部分改成服務(wù)器端的配置,其他配置保留。另外 local.propertity里面會存放用戶 sdk 和 ndk 目錄的位置,這個最好也是加入忽略。服務(wù)端手動配置上去。配置成服務(wù)端的 sdk 目錄和 ndk 目錄。
submodule
考慮到一些項目會有 submodule,這個時候需要做一些額外的配置。

在源碼管理模塊添加一個 submodule 設(shè)置。勾選上遞歸更新 submodule 和 用父目錄的證書(這是 jenkins 的一個 bug)。第二個勾選框是為了解決 submodule 認(rèn)證失敗的 bug。