在jenkins 构建服务前校验分支是否合并了master
#!/bin/bash
echo ${branches}
if [[ ${branches} != hotfix* && ${branches} != release* && ${branches} != feature* && ${branches} != master* ]];then
echo -e ' 33[31m 分支格式不对,请获取hotfix 或者release分支 或者 feature分支 33[0m'
exit 1
fi
echo '切换到master主干'
git checkout master
echo '获取master的最新代码'
git pull origin master
echo '获取master的最新commitid'
commid=`git rev-parse HEAD`
echo $commid
echo '获取上线分支是否包含master的最新commitid'
result=`git branch -a --contains ${commid}`
if [[ $result =~ ${branches} ]];then
echo '可以打包上线'
git checkout ${branches}
git pull origin ${branches}
else
echo -e ' 33[31m 你又没合并master ,请自行检查合并 33[0m'
exit 1
echo $result
fi
*********************************8
上线结束后,自动进行代码合并
if [[ ${branches} == master ]];then
echo '代码合并失败,请使用非master分支'
exit 0
fi
if [[ ${branches} != hotfix* && ${branches} != release* ]];then
echo -e ' 33[31m 分支格式不对,请获取hotfix 或者release分支,不进行合并 33[0m'
exit 1
fi
echo '切换到master主干'
git checkout master
echo '获取master的最新代码'
git pull origin master
echo '获取master的最新commitid'
commid=`git rev-parse HEAD`
echo $commid
echo '获取上线分支是否包含master的最新commitid'
result=`git branch -a --contains ${commid}|grep ${branches}`
echo $result
if [ $result != "" ];then
echo '开始执行合并代码到master, develop'
git checkout ${branches}
git pull origin ${branches}
git checkout master
git pull origin master
git merge ${branches}
git push origin master
git checkout develop
git pull origin develop
git merge ${branches}
git push origin develop
else
echo -e ' 33[31m 上线包不包含master分支,上线包有问题 33[0m'
exit 1echo $result
************************************