Jenkins搭建集成部署與使用

Jenkins安裝

下載地址:https://jenkins.io/zh/
安裝文檔:https://jenkins.io/zh/doc/pipeline/tour/getting-started/
按照默認的推薦完成安裝即可。

插件和全局配置

jdk配置
android sdk配置
android ndk配置
gradle配置
git配置

這些就不多說了,本地的話應該都有了,如果部署到遠程服務器上的話得安裝一下。

安裝Jenkins插件
Manage Jenkins >> Manage Plugins

搜索安裝Git插件(遠程倉庫)
搜索安裝Git Parameter插件(配置選擇構建分支)
搜索安裝Gradle插件(Android構建工具)
搜索安裝description setter plugin插件(添加構建後的描述)
下載安裝fir插件(自動上傳apk到fir平臺)
也可以直接在https://plugins.jenkins.io/上搜索下載插件,然後在Jenkins插件管理上傳hpi文件。

Jenkins - Manage Jenkins - Confogure System - 找到全局屬性
配置自己的環境 Gradle我沒配置,而是在具體的項目配置中勾選Force GRADLE_USER_HOME to use workspace
在這裏插入圖片描述

創建Jenkins任務

創建任務

點擊“新建Item”,並且輸入任務名稱(例:autoapk)新建一個自由風格項目(freeStyle project)
點擊新建Item
輸入名稱新建一個自由風格項目
依次輸入任務描述,選擇第四個勾選框this project is parameterized 點擊“添加參數”,可以看到很多選擇我們大部分用到的是choice parameter(可選參數),git parameter(這個選項需要安裝插件Git Parameter Plug-In),第一個可選參數我們填寫打包的環境BUILD_TYPE,選項則是我們提供的選項描述已經很清晰了。
在這裏插入圖片描述
在這裏插入圖片描述
第二個可選參數我們選擇打包的平臺(我們是爲不同廠家的平板打包使用不同簽名的包)至於我們項目中如何拿到這個值我們需要在gradle.properties中配置一個同名的PLATFORM
在這裏插入圖片描述
gradle.properties

在根目錄的build.gradle中使用

apply plugin: 'com.android.application'
//xxx1 1 xxx2 2
def platFormType = PLATFORM ? Integer.valueOf(PLATFORM) : 1
android {
    signingConfigs {
        debug {
            if (platFormType == 1) {
                storeFile file("../xxx1_platform.jks")
                storePassword 'xxxxxx'
                keyAlias 'xxxx1'
                keyPassword 'xxxxxx'
            } else if (platFormType == 2) {
                storeFile file("../xxx2_platform.jks")
                storePassword 'xxxxxx'
                keyAlias 'xxxx2'
                keyPassword 'xxxxxx'
            }
        }
        release {
       		//與debug配置相同
        }
    }
 }

第三個可選參數配置分支BRANCH這個地方可以使用Git Parameter更方便選擇各個分支,我們現在也可以使用String Parameter手動輸入分支名稱。
在這裏插入圖片描述

源碼管理

輸入項目SSH地址
選擇添加憑據,SSH祕鑰
通過$BRANCH引用上邊我們填寫的可選參數
在這裏插入圖片描述
全局憑證的添加 Jenkins首頁找到憑據-系統-全局憑據-左側選擇添加憑據
在這裏插入圖片描述
添加好之後就可以在源碼管理 git下的Credentials右側的添加
在這裏插入圖片描述

構建觸發器

未配置,可以參考其他人Jenkins這個地方的配置。

構建環境

未配置,可以參考其他人Jenkins這個地方的配置。
在這裏插入圖片描述

構建

在這裏插入圖片描述

這裏需要設置gradle,我們增加一個構建步驟:Invoke Gradle script,然後配置如上,也可以選擇 Use Gradle Wrapper,實際操作中選擇Invoke Gradle script後邊task也會執行。
Tasks裏面輸入我們要執行的任務,一般是clean assemble$BUILD_TYPE,其實就是gradle打包構建命令,輸入在這裏即可。
點開高級:Pass all job parameters as Project properties,一定要勾選這個選項,代表把你上面的那些參數用來當作gradle構建參數,否則的話是不會起作用的。
Force GRADLE_USER_HOME to use workspace意思是自動下載使用項目依賴的Gradle 勾選不勾選都沒問題。

Execute shell 構建完成之後執行
在這裏插入圖片描述

#!/bin/bash
echo ">>> 開始上傳到蒲公英"
dir="/Users/Shared/Jenkins/Home/workspace/AutoMakeApk/taxi/build/outputs/apk/${BUILD_TYPE}/"
fileName=""

cd $dir

for i in $(ls)
do
  echo $i
  temp=$i
  if [ "${temp##*.}"x = "apk"x ]
    then
      fileName=$i
  fi
done

fullPath=$dir$fileName

echo 文件全路徑:$fullPath
RESULT=$(curl -F "file=@${fullPath}" -F "uKey=替換爲自己的uKey" -F "_api_key=替換爲自己的api_key" https://qiniu-storage.pgyer.com/apiv1/app/upload)
echo $RESULT
sub_json=${RESULT##*appKey\":\"}
appkey=${sub_json%\",\"userKey*}

export DOWNLOAD_URL=https://www.pgyer.com/$appkey #設置全局變量,爲了發郵件拼接完整路徑

echo "#######################################################################################"
echo "##"                                                                                
echo "下載地址:<<< ${DOWNLOAD_URL} >>>"                                          
echo "##"                                                                                     
echo "#######################################################################################"

最後保存填寫內容退出。

開始構建項目

在這裏插入圖片描述

jenkins 本地二維碼生成 高級篇
Android使用Jenkins持續集成
Jenkins+Android自動打包續4:打包後自動上傳到文件服務器
使用Docker搭建Jenkins進行持續集成持續部署
Jenkins部署Android項目並上傳fir平臺及顯示二維碼下載

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