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

Posted yingchen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了平常构建项目中会用到的一些脚本相关的知识,希望对你有一定的参考价值。

在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

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

 

以上是关于平常构建项目中会用到的一些脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何在构建之前使CMake运行python脚本,以便为我的项目生成文件以在构建中使用?

Maven项目构建管理

SpringMVC构建简单项目

在 Windows 上构建自动化程序/脚本

在 XCode 5 中构建时在 XCode 项目中运行 bash 文件

《构建之法》第四章第十七章读后感