通过WebHook+Jenkins实现不同gitlab相同项目的代码同步

文章目录

  • Jenkins配置
      • jenkins+gitlab+webhook自动触发代码构建
  • 同步代码的脚本(配置在Job的Build里)


Jenkins配置

jenkins+gitlab+webhook自动触发代码构建

同步代码的脚本(配置在Job的Build里)

time=`date "+%Y%m%d%H%M"`
flag=0
srcgit="A套gitlab的test项目地址"
dstgit="B套gitlab的test项目地址t"
branchs=${gitlabSourceBranch}					#A套gitlab传递过来的分支信息,可以在Job的环境变量信息查看,如图1
	
cd $WORKSPACE
git clone -b ${branchs}  ${srcgit} srchub
git clone -b ${branchs}  ${dstgit} dsthub || flag=1

if [ ${flag} -eq 1 ];then
    git clone -b master ${dstgit} dsthub
    cd dsthub && git checkout -b ${branchs}
fi

#保留dsthub仓库的git配置信息,否则会被srchub覆盖
cd $WORKSPACE
mv dsthub/.git .
rsync -avzHP  --delete  srchub/ dsthub/
rm -rf dsthub/.git
mv ./.git dsthub/
#rsync -avzHP --delete --exclude srchub/.git --exclude srchub/.gitignore srchub/* dsthub

cd dsthub
num1=$(git status |grep 'nothing to commit, working tree clean' | wc -l)
if [ $num1 -eq 0 ];then
  git add .
  git commit   -m "sync ${time}"
  #git checkout -b master
  git push -u origin ${branchs}
fi

图1
通过WebHook+Jenkins实现不同gitlab相同项目的代码同步_第1张图片

你可能感兴趣的:(git,CI/CD,git,gitlab)