sh 脚本查找对应Git分支

由于每一个版本测试分支 在测试之后会被删除  然后再次测试下一个版本的时候又会生成不同的分支名称 列如 : release_年月日_xxx

导致每次都要修改部署的脚本

有没有什么方法 能减少这个修改呢

方法 :1 将分支名称做为一个参数传进去 (这个方法由于每次重启都要输入分支名 麻烦)

方法2 : 遍历线上的分支 模糊匹配到该分支 再编译

贴代码

CODE_PATH= 项目所在位置路径替换此处

echo "开始拉取最新代码....................................."

#首先进行编译
cd ${CODE_PATH}
echo " 拉取线上分支并同步到本地----------------"
git remote update origin --prune
#遍历git下所有分支
echo "遍历$project_path下所有项目的所有分支"

all_branchs=`git branch -a`;
max_day=0
echo $max_day
#循环找到规则中日期最大的那个
for branch in $all_branchs;
do
branch_simple_name=`echo $branch | grep '/' | cut -d '/' -f3`
echo $branch_simple_name
if [[ $branch_simple_name == release* ]];
then
echo "=========循环找到规则中日期最大的那个开始==========="
echo $branch_simple_name
#release-20220323-v1.0.0
#从左边第几个字符开始,及字符的个数
echo ${branch_simple_name:8:8}
if [ $max_day -eq 0 ]
then echo "$1>$2"
max_day=${branch_simple_name:8:8}
fi
if [ $max_day -gt ${branch_simple_name:8:8} ]
then
max_day=max_day
else max_day=${branch_simple_name:8:8}
fi
echo $max_day
echo "========循环找到规则中日期最大的那个结束============"
fi;
done;
echo "===================找到的最大日期========================"
echo $max_day



for branch in $all_branchs;
do
branch_simple_name=`echo $branch | grep '/' | cut -d '/' -f3`
echo $branch_simple_name
if [[ $branch_simple_name == release* ]];
then
#echo "===================="
echo $branch_simple_name
if [ $max_day -eq ${branch_simple_name:8:8} ]
then
echo "=========找到的最大的日期分支为=============="
#echo $branch_simple_name
git pull origin $branch_simple_name
echo "开始编译..........................................."
mvn clean package -Dmaven.test.skip=true
echo "打包完成....................................."
echo $branch_simple_name
fi


#echo "===================="
fi;
done;

 

 

posted on 2022-04-15 10:41  好名字被谁用了  阅读(154)  评论(0编辑  收藏  举报

导航