#!/bin/sh #svn log -r 6126 https://odm-design-center-hz.tclking.com/svn/scbc_apps/trunk/app/src/Eshow #svn info https://odm-design-center-hz.tclking.com/svn/scbc_apps/trunk/app/src/Eshow # 参数1:apk名称,源于源码路径,需要对带 _General 的删除后缀。 APK_NAME=$1 # 参数2:debug apk的svn版本号; APK_DEBUG_SVN_REVISION=$2 # APK的Debug日志; APK_DEBUG_LOG=$3 # Debug Apk 地址; APK_DEBUG_URL='https://odm-design-center-hz.tclking.com/svn/scbc_apps/trunk/app/apk/01debug/general' # Release Apk 地址; APK_RELEASE_URL='https://odm-design-center-hz.tclking.com/svn/scbc_apps/trunk/app/apk/02release/general' # Apk源码地址; APK_SRC_URL='https://odm-design-center-hz.tclking.com/svn/scbc_apps/trunk/app/src' # Debug Apk 路径; APK_DEBUG_DIR='/home/data/ApkAutoCompile/cacheAPK/general/Debug' # Release Apk 路径; APK_RELEASE_DIR='/home/data/ApkAutoCompile/cacheAPK/general/Release' function main() { # 1、参数校验; if [ "${APK_NAME}" == "" ]; then echo "==> 错误:参数-APK名称为空" return fi if [ "${APK_DEBUG_SVN_REVISION}" == "" ]; then echo "==> 错误:参数-Debug Apk SVN版本号为空" return fi if [ "${APK_DEBUG_SVN_REVISION}" -gt 0 ] 2>/dev/null; then echo "" else echo "==> 错误:参数-Debug Apk SVN版本号不为数字" return fi if [ "${APK_DEBUG_LOG}" == "" ]; then echo "==> 错误:参数-Debug Apk Log日志为空" return fi # 过滤掉APK名称中的 _General 后缀 # 注:此方法会过滤掉包含 _General 往后的所有字符,所以APK名称不能在中间包含 _General ; APK_NAME=${APK_NAME%_General*} echo "==> APK名称=${APK_NAME}, DebugApk SVN 版本号=${APK_DEBUG_SVN_REVISION}" # 生成目标变量; DEBUG_APK_URL="${APK_DEBUG_URL}/${APK_NAME}" RELEASE_APK_URL="${APK_RELEASE_URL}/${APK_NAME}" LOG=`svn log -r ${APK_DEBUG_SVN_REVISION} ${DEBUG_APK_URL}` if [ "${LOG}" == "" ];then echo "==> 错误:log空" return fi echo "=====================================================================================================>" echo -e "nApk-DebugUrl=\t${DEBUG_APK_URL}\r\nApk-ReleaseUrl=\t${RELEASE_APK_URL}\r\nApk-Log=${LOG}" echo "<=====================================================================================================" # 创建debug根目录; if [ ! -d ${APK_DEBUG_DIR} ];then mkdir ${APK_DEBUG_DIR} fi # 创建release根目录; if [ ! -d ${APK_RELEASE_DIR} ];then mkdir ${APK_RELEASE_DIR} fi echo "==> 导出Debug Apk" DEBUG_APK_DIR="${APK_DEBUG_DIR}/${APK_NAME}" if [ -d ${DEBUG_APK_DIR} ]; then # 删除所有文件; rm -rf ${DEBUG_APK_DIR} fi #重新export svn 'export' ${DEBUG_APK_URL} ${DEBUG_APK_DIR} echo "==> 检出Release Apk" RELEASE_APK_DIR="${APK_RELEASE_DIR}/${APK_NAME}" if [ -d ${RELEASE_APK_DIR} ]; then # 删除所有文件; rm -rf ${RELEASE_APK_DIR} fi # 重新checkout出来; svn co ${RELEASE_APK_URL} ${RELEASE_APK_DIR} # 将debug的apk复制到release目录中,再提交; cp ${DEBUG_APK_DIR}/* ${RELEASE_APK_DIR} # 是否复制成功 Status=`svn status ${RELEASE_APK_DIR}` echo ${Status} if [ "${Status}" == "" ];then echo "==> 错误:Apk-Release目录下SVN无状态改变" return fi # 提交修改; svn add ${RELEASE_APK_DIR} svn commit -m ${APK_DEBUG_LOG} ${RELEASE_APK_DIR} } main