做爲一名高效的開發者,要儘可能避免的重複勞動實現自動化的流程。搭建本地jenkins服務器,實現自動化打包流程,今後測試包交給測試人員本身去打就行了,集成蒲公英等分發平臺,實現二維碼或短連接下載,也爲運營人員提供了便捷。javascript
前往jenkins.io/下載對應系統版本的jenkins包,本文以windows爲例,兩種方式:java
localhost:8080
便可訪問。localhost:8080/jenkins
訪問。啓動後,會看到jenkins初始配置頁面,這裏須要選擇安裝的插件,例如:我要集成gitlab,因此選擇gitlab的插件,若是你是集成github,則選擇github插件,大致流程相同,插件能夠後期根據須要再安裝。android
進入主頁後,點擊系統管理->Global Tool Configuration,設置jdk、git及gradle等。git
新建自由風格的軟件項目github
進入配置頁面web
配置Gernal模塊。選中參數化構建過程選項,配置以下:windows
配置源碼管理。設置遠程倉庫的地址,http方式和ssh方式都是支持的。api
構建觸發器。這裏有兩個選項:瀏覽器
Poll SCM:定時檢查源碼變動(根據SCM軟件的版本號),若是有更新就checkout最新code下來,而後執行構建動做。個人配置以下:
/5 * (每5分鐘檢查一次源碼變化)tomcat
Build periodically:週期進行項目構建(它不care源碼是否發生變化),個人配置以下:
0 2 * (天天2:00 必須build一次源碼)
這裏只是向你們說明,本案例由於android每次按照版本及渠道發包,因此不作配置。
構建模塊配置
-PIS_JENKINS=${IS_JENKINS} -PAPP_VERSION=${APP_VERSION} -PJENKINS_TIME=${JENKINS_TIME}
assemble${PRODUCT_FLAVOR_BUILD}${ENVIRONMENT}
--stacktrace
--debug
--info複製代碼
集成到蒲公英。點擊增長構建後步驟,windows選擇execute Windows batch command,添加命令:curl -k -F "file=@D:\env\android-v%APP_VERSION%-%PRODUCT_FLAVOR_BUILD%-%JENKINS_TIME%-%ENVIRONMENT%.apk" -F "uKey=your ukey" -F "_api_key=your api key" https://www.pgyer.com/apiv1/app/upload
這裏的u key和api key是你在蒲公英平臺註冊開發者得到。文件的地址要跟你在項目build.gradle中配置的同樣。
項目build.gradle配置以下:
android{
...
defaultConfig {
...
versionName APP_VERSION
resValue("string", 'app_version', APP_VERSION)
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "common"]
...
}
productFlavors {
huawei {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "huawei"]
}
xiaomi {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]
}
...
}
//修改生成的apk名字及輸出目錄
applicationVariants.all { variant ->
variant.outputs.each { output ->
def newName
def timeNow
def oldFile = output.outputFile
def outDirectory = oldFile.parent
if (IS_JENKINS) {
timeNow = JENKINS_TIME
outDirectory = 'D:/env'
newName = 'android-v' +
APP_VERSION + '-' + variant.productFlavors[0].name + '-'+ timeNow + '-' + variant.buildType.name + '.apk'
} else {
timeNow = getDate()
if (variant.buildType.name.equals('debug')) {
newName = "android-v${APP_VERSION}-debug.apk"
} else {
newName = 'android-v' +
APP_VERSION + '-' + variant.productFlavors[0].name + '-'+timeNow + '-' + variant.buildType.name + '.apk'
}
}
output.outputFile = new File(outDirectory, newName)
}
}
}複製代碼
配置完參數,保存後回到主頁,點擊項目後的run圖標選擇各項動態參數,開始任務。
點擊構建歷史中當前條目,進入Console Output,可查看這次構建任務的log信息。若是構建失敗,請去查看log信息,根據錯誤信息糾錯。
notice: 項目gradle.properties也要添加:
APP_VERSION=2.4.0
IS_JENKINS=false
JENKINS_TIME=''複製代碼
服務器上的sdk也要跟本地保持一致。
jenkins最近推出了blue ocean項目,提供了更好的用戶體驗,具體細節在jenkins.io/projects/bl…,你也能夠在可選插件裏搜索BlueOcean beta,安裝體驗。