文章目錄
- Jenkins 介紹(一)
- Jenkins 下載安裝(二)
- Jenkins 系統(tǒng)配置(三)
- Jenkins 用戶權(quán)限問(wèn)題(四)
- Jenkins 項(xiàng)目配置(五)
- Jenkins 參數(shù)化構(gòu)建(六)
項(xiàng)目示例
所有配置完成構(gòu)建成功后的頁(yè)面
image.png
源碼管理
1.SVN
image.png
2.GIT
image.png
構(gòu)建觸發(fā)器
image.png
構(gòu)建環(huán)境
image.png
構(gòu)建
image.png
shell腳本上傳蒲公英
# build -> Add build step -> Execute shell
pgyerApiKey="**************************"
pgyerUKey="*************************"
echo "獲取apk版本號(hào)..."
# ${WORKSPACE} 是jenkins提供的環(huán)境變量,表示當(dāng)前項(xiàng)目跟目錄路徑
# 下面的命令是獲取 app/build.gradle 的第23行內(nèi)容,然后按照雙引號(hào)進(jìn)行切換,提取第2部分內(nèi)容,即上面圖示中的 1.1.4
versionName=`sed -n '23p' ${WORKSPACE}/cdel-frameProjectDemo/app/build.gradle | cut -d \" -f 2`
echo "獲取apk所在路徑..."
# _360 是項(xiàng)目中定義了多渠道,但由于之前在 Build - Task 中設(shè)置的打包命令,直接指定了渠道號(hào),因此這里也直接固定寫好就可以;
# \cdel-frameProjectDemo\app\build\outputs\apk\package 項(xiàng)目apk存放的路徑 CdelFrameDemo_V1.0.0_release_2017-08-30_pgy apk名稱
# 這里需要弄成動(dòng)態(tài)的
apkAbsPath="${WORKSPACE}/cdel-frameProjectDemo/app/build/outputs/apk/package/CdelFrameDemo_V1.0.0_release_2017-08-31_pgy.apk"
echo "上傳apk到蒲公英進(jìn)行發(fā)布..."
response=$(curl -F "file=@${apkAbsPath}" -F "uKey=${pgyerUKey}" -F "_api_key=${pgyerApiKey}" https://qiniu-storage.pgyer.com/apiv1/app/upload)
echo "上傳結(jié)束"
# 原本上傳結(jié)束后想要使用 jq 工具 (`brew install jq`) 對(duì)蒲公英上傳時(shí)返回的response進(jìn)行json處理的,結(jié)果在電腦的shell中測(cè)試可行,但寫到這里就一直不成功,無(wú)奈,只好放棄
# 提取蒲公英返回的json數(shù)據(jù)中的 appShortcutUrl 字段值,可拼接成下載地址
#responseCode=$(echo -E "${response}" | jq .code)
#if [ $((responseCode)) == 0 ]
#then
# echo "上傳結(jié)束,處理返回相應(yīng)..."
# appShortcutUrl=$(echo -E "${response}" | jq ".data.appShortcutUrl" | cut -d \" -f 2)
# apkOnlineUrl="https://www.pgyer.com/${appShortcutUrl}"
#else
# echo "上傳失敗,返回碼為: ${responseCode} ,具體請(qǐng)看日志"
#fi
構(gòu)建后操作
image.png