Jenkins-iOS组件pod自动化脚本

2023-03-15  本文已影响0人  FieryDragon
#!/bin/bash -l

export LANG=en_US.UTF-8

echo "执行脚本"

component_local_url_name_length=${#COMPONENT_LOCAL_URL}
if [ "$component_local_url_name_length" = "0" ];then
    echo "私有库本地路径不能为空"
    exit 1
fi

lib_name_length=${#LIB_NAME}
if [ "$lib_name_length" = "0" ];then
    echo "私有库名不能为空"
    exit 1
fi

cd "$COMPONENT_LOCAL_URL"

#创建私有索引库
echo "是否创建私有索引库:$IF_POD_REPOS"
if [ "$IF_POD_REPOS" = "0" ]; then
    echo "不创建私有索引库....."
else
    echo "创建私有索引库😊😊..."
    POD_REPOS_URL='http://***/component/component-ios-specs.git'
    repos_name_git=${POD_REPOS_URL##*/}
    repos_name=${repos_name_git%.*}
    
    tdspec_path=("~/.cocoapods/repos/$repos_name")
    if [ ! -d "$tdspec_path" ] ; then
        echo "开始创建私有索引库路径$tdspec_path"
        pod repo add "$repos_name" "$POD_REPOS_URL"
    fi
    echo "创建私有索引库完成😊😊..."
fi


#创建私有库
#echo "创建私有库😊😊..."
#echo "是否创建私有库:$IF_POD_LIB_CREATE"
#if [ "$IF_POD_LIB_CREATE" = "0" ]; then
#    echo "不创建私有库....."
#else
# 
#    echo "iOS\nObjC\nYes\nNone\nNo\nYS\n"|pod lib create "$LIB_NAME"
#fi
#echo "创建私有库完成😊😊..."

#关联远端仓库
lib_url_length=${#LIB_URL}
if [ "$lib_url_length" != "0" ];then
    echo "关联远端仓库😊😊..."
    git remote add origin "$LIB_URL"
    echo "关联远端仓库完毕😊😊..."
fi


        #临时数据
temp_path="$COMPONENT_LOCAL_URL/TempPath"
if [ ! -d "$temp_path" ] ; then
    mkdir -pv $temp_path
fi
NewDATE=`date +%s`

#git提交
git_commit_length=${#GIT_COMMIT}
if [ "$git_commit_length" != "0" ];then

        cd "$COMPONENT_LOCAL_URL/Example"
        echo "更新pod😊😊..."
        
        pod install | tee "$temp_path/$NewDATE.log"
        # 判断是否安装成功
        if cat $temp_path/$NewDATE.log | grep "Pod installation complete!" > /dev/null
        then
            echo "pod install成功 🌹🌹🌹🌹🌹🌹"
        else
            echo "pod install失败 ⚠️⚠️⚠️⚠️⚠️⚠️"
            rm -rf $temp_path
            exit 1
        fi
        echo "更新pod完毕😊😊..."
        
        
        cd "$COMPONENT_LOCAL_URL"
        echo "验证podspec是否有效😊😊..."
        #pod lib lint --allow-warnings  | tee "$temp_path/$NewDATE.log"
        pod lib lint --allow-warnings --verbose --use-libraries --no-clean --sources="$POD_REPOS_URL,https://github.com/CocoaPods/Specs"  | tee "$temp_path/$NewDATE.log"
        # 判断是否验证成功
        if cat $temp_path/$NewDATE.log | grep "$LIB_NAME passed validation." > /dev/null
        then
            echo "验证podspec成功 🌹🌹🌹🌹🌹🌹"
        else
            echo "验证podspec失败 ⚠️⚠️⚠️⚠️⚠️⚠️"
            rm -rf $temp_path
            exit 1
        fi
        echo "验证podspec完毕😊😊..."
        
        
        echo "提交😊😊..."       
        git stauts
        git add .
        git commit -m "$GIT_COMMIT"
        git push -f origin main
        echo "提交完毕😊😊..."        
fi


#tag版本
git_tag_length=${#GIT_TAG}
if [ "$git_tag_length" != "0" ];then
    echo "tag更新😊😊..."
    git tag -a "$GIT_TAG" -m "$GIT_TAG"
    git push origin --tags
    echo "同步更新😊😊..."
fi


#同步索引库
if [ "$POD_REPO_PUSH" = "1" ];then
    echo "同步索引库😊😊..."
    pod repo push "$repos_name" "$LIB_NAME.podspec" --allow-warnings --verbose --use-libraries --sources="$POD_REPOS_URL,https://github.com/CocoaPods/Specs"| tee "$temp_path/$NewDATE.log"
            # 判断是否验证成功
    if cat $temp_path/$NewDATE.log | grep "Pushing the" > /dev/null
    then
        echo "同步索引库成功 🌹🌹🌹🌹🌹🌹"
    else
        echo "同步索引库失败 ⚠️⚠️⚠️⚠️⚠️⚠️"
        rm -rf $temp_path
        exit 1
    fi
  
    echo "同步索引库完毕😊😊..."
fi

rm -rf $temp_path
exit 0

上一篇下一篇

猜你喜欢

热点阅读