echo ${BUILD_NUMBER}
echo ${Branch}
echo ${BUILD_USER_EMAIL}
echo ${BUILD_USER}
source ~/.bash_profile
# 拷贝后的要用来存档的目录
output_app_dir="$WORKSPACE/app/build/jenkins"
# 编译工具输出的目录
output_apk_dir="$WORKSPACE/app/build/outputs"
build_type="${BuildType}"
# 上传蒲公英的 apk 路径
upload_apk_path=""
# 下面判断编译类型,来执行不同的 task
if [ "$build_type" == "debug" ]; then
gradle clean assembleDebug --stacktrace
mkdir "$output_app_dir"
cp $output_apk_dir/apk/app-debug.apk $output_app_dir/debug_${BUILD_NUMBER}.apk
upload_apk_path=$output_app_dir/debug_${BUILD_NUMBER}.apk
elif [ "$build_type" == "release" ]; then
gradle clean assembleRelease --stacktrace
mkdir "$output_app_dir"
cp $output_apk_dir/apk/app-release.apk $output_app_dir/release_${BUILD_NUMBER}.apk
cp $output_apk_dir/mapping/release/mapping.txt $output_app_dir/mapping_${BUILD_NUMBER}.txt
upload_apk_path=$output_app_dir/release_${BUILD_NUMBER}.apk
else
# 多渠道打包用的是 美团的 walle
#gradle clean assembleReleaseChannels --stacktrace
# -DBUGLY_ENABLED=true 是向 Gradle 中传递一个参数,用来开启 bugly 的 mapping 上传任务
gradle clean -DBUGLY_ENABLED=true assembleReleaseChannels --stacktrace
mkdir "$output_app_dir"
cp -r $output_apk_dir/channels $output_app_dir/channels_${BUILD_NUMBER}
cp $output_apk_dir/mapping/release/mapping.txt $output_app_dir/mapping_${BUILD_NUMBER}.txt
# 找到含有指定渠道名的 apk 文件的路径用来上传蒲公英
upload_apk_path=`find "$output_app_dir/channels_${BUILD_NUMBER}" -name "*-xxxx-*.apk"`
fi
#上传到蒲公英
echo "++++++++++++++upload to pgyer+++++++++++++"
#蒲公英上的User Key
uKey="xxxxxx"
#蒲公英上的API Key
apiKey="xxxxx"
#要上传的apk文件路径
APK_PATH="${upload_apk_path}"
#执行上传至蒲公英的命令
if [ -f "$APK_PATH" ]; then
curl -F "file=@${APK_PATH}" -F "uKey=${uKey}" -F "_api_key=${apiKey}" http://www.pgyer.com/apiv1/app/upload
fi