平常构建项目中会用到的一些脚本

在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

************************************

原文地址:https://www.cnblogs.com/yingchen/p/11864863.html