Jenkins Android打包(Mac平臺)

Mac下Jenkins Android打包

一、安裝tomcat

a、下載tomcat

http://tomcat.apache.org/
在這裏插入圖片描述

下載完成後解壓到:

/Users/xiaxveliang/Library/

b、啓動tomcat:

sudo sh startup.sh

c、驗證

在這裏插入圖片描述

二、安裝Jenkins

a、下載 jenkins.war

https://jenkins.io/index.html

在這裏插入圖片描述

下載完成後,放入以下路徑:

/Users/xiaxveliang/Library/ApacheTomcat/webapps

b、打開

http://localhost:8080/jenkins

在這裏插入圖片描述

c、找不到initialAdminPassword

找不到

/var/root/.jenkins/secrets/initialAdminPassword

解決方案:
mac finder訪問/var/root 目錄
mac 不能打開文件夾xxx 因爲您沒有權限查看其內容

d、修改jenkins job工作目錄

// 修改後的job目錄
/Users/xiaxveliang/a_Work/Jenkins/${JOB_NAME}

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

e、添加git 憑據

在這裏插入圖片描述

在這裏插入圖片描述

f、丟棄原則

在這裏插入圖片描述

g、選擇構建分支

*/$BRANCH

在這裏插入圖片描述
在這裏插入圖片描述

特別 特別 特別 注意下載 Persistent Parameter 插件 記住上一次構建成功的參數選擇
在這裏插入圖片描述

h、定時構建

// 定時構建:工作日(週一到週五)9~18點每隔2個小時構建一次
H 9-18/2 * * 1-5
// 輪詢:每隔5分鐘檢查一次是否有代碼更新
H/5 * * * * 

在這裏插入圖片描述

i、構建

build apk

shell 腳本 build

# build
/Applications/Android\ Studio.app/Contents/gradle/gradle-4.10.1/bin/gradle clean assembleRelease --stacktrace -info

shell 腳本rename apk

# rename
mv $WORKSPACE/build/outputs/apk/test-release.apk $WORKSPACE/build/outputs/apk/$JOB_NAME-$BUILD_NUMBER-$BRANCH.apk

在這裏插入圖片描述

j、歸檔 (完成)

# 歸檔文件
**/$JOB_NAME-$BUILD_NUMBER-$BRANCH.apk

在這裏插入圖片描述

到這裏,可以說jenkins Android打包已經完成。但我們還有其他一些細節需要完善,比如說生成二維碼、發郵件等

k、生成一個指向 JOB_NAME-BUILD_NUMBER-BRANCH.apk的Html

shell 腳本截圖

在這裏插入圖片描述

shell 腳本

#create html
 
cd $WORKSPACE/build/outputs/apk
rm -rf $JOB_NAME.html
touch $JOB_NAME.html
 
cat << EOF > $JOB_NAME.html
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="viewport" content="width=device-width"/>
<title>$JOB_NAME</title>
</head>
<body>
 
<h3><a href="http://10.236.148.225:8080/jenkins/job/$JOB_NAME/$BUILD_NUMBER/artifact/build/outputs/apk/$JOB_NAME-$BUILD_NUMBER-$BRANCH.apk">$JOB_NAME-$BUILD_NUMBER-$BRANCH</a>
</h3>
 
</body>
</html>
EOF
#copy html to tomcat folder

歸檔JOB_NAME.html

**/$JOB_NAME-$BUILD_NUMBER-$BRANCH.apk,**/$JOB_NAME.html

在這裏插入圖片描述

l、生成二維碼——>指向 JOB_NAME.Html

下載QRcode.jar

QRcode.jar下載

shell 腳本截圖
在這裏插入圖片描述

shell 腳本

# java -jar xxx/QRcode.jar url=xxx/test.apk image=qrcode.png save=xxx/xxx/
java -jar /Users/xiaxveliang/Library/Tomcat/webapps/QRCode.jar url=http://10.236.148.225:8080/jenkins/job/$JOB_NAME/$BUILD_NUMBER/artifact/build/outputs/apk/$JOB_NAME.html image=qrcode.png save=$WORKSPACE/build/outputs/apk/

歸檔qrcode.png

**/$JOB_NAME-$BUILD_NUMBER-$BRANCH.apk,**/$JOB_NAME.html,**/qrcode.png

在這裏插入圖片描述

m、郵件發送

Jenkins/系統管理/系統設置

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

job_name/configure

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

郵件模版

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>[Android內測]${ENV, var="JOB_DESCRIPTION"}</title>
</head>

<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
      offset="0" >
<h3>以下是Jenkins自動發送的郵件,請勿回覆!</h3>
<div>
    <table width="95%" cellpadding="0" cellspacing="0" border="1"
           style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
        <tr>
            <th><br />
                <h2>構建信息</h2>
            </th>
        </tr>
        <tr>
            <td>
                <ul>
                    <li>項目名稱 : $JOB_NAME-$BUILD_NUMBER-$BRANCH</li><br />
                    <li>分支 : ${BRANCH}</a></li><br />
                    <li>版本build號 : ${BUILD_NUMBER}</li><br />              
                    <li><font size="3" color="black"><b><a href="http://10.236.148.225:8080/jenkins/job/${JOB_NAME}/">點擊查看構建的詳細信息</b></a></li><br />
                   <li>Android客戶端下載圖片$BRANCH:<img src="http://10.236.148.225:8080/jenkins/job/$JOB_NAME/$BUILD_NUMBER/artifact/build/outputs/apk/qrcode.png"/></li><br />
                   <li><a href="http://10.236.148.225:8080/jenkins/job/$JOB_NAME/$BUILD_NUMBER/artifact/build/outputs/apk/$JOB_NAME-$BUILD_NUMBER-$BRANCH.apk"> Android客戶端下載地址</a> </li><br />
                   <li #right-panel .data { line-height: 19px; white-space: initial; }>git log: ${CHANGES_SINCE_LAST_SUCCESS}</li><br />
                </ul>
            </td>
        </tr>
    </table>
</div>
</body>
</html>

n、切換 test/online 環境

在這裏插入圖片描述
在這裏插入圖片描述

# test or online
# file
FILE_DIR=$WORKSPACE/src/com/test/constants/NetConstants.java
# code test or online
Test_Str="public static boolean TEST = true"
Online_Str="public static boolean TEST = false"
# test
# sed 's/123/456/g' replace 123 to 456
if [ $ENV_TEST = "true" ];then
`sed -i.bak "s/$Online_Str/$Test_Str/g" $FILE_DIR`
elif [ $ENV_TEST = "false" ];then
`sed -i.bak "s/$Test_Str/$Online_Str/g" $FILE_DIR`
fi

# build
/Applications/Android\ Studio.app/Contents/gradle/gradle-4.10.1/bin/gradle clean assembleRelease

注:關於shell腳本,可參考 Linux shell 腳本

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