1、服务器安装git
yum install git
2、服务器生成公钥
cd ~/.ssh
ssh-keygen -t rsa
cat id_rsa.pub
3、把公钥粘贴到码云
项目-》部署公钥管理-》添加公钥
4、宝塔安装webhook
5、添加webhook,脚本如下(注意:宝塔新建的项目目录最好和码云的项目目录名称一致,便于用一个参数传递 $1)
!/bin/bash
echo ""
输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
判断宝塔WebHook参数是否存在
if [ ! -n "$1" ];
then
echo "param参数错误"
echo "End"
exit
fi
git项目路径
gitPath="/www/wwwroot/$1"
git 网址
gitHttp="git@gitee.com:congjian/$1.git"
echo "Web站点路径:$gitPath"
判断项目路径是否存在
if [ -d "$gitPath" ]; then
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
git clone $gitHttp gittemp
mv gittemp/.git .
rm -rf gittemp
fi
#拉取最新的项目文件
git reset --hard origin/master
git pull
#设置目录权限
chown -R www:www $gitPath
echo "End"
exit
else
echo "该项目路径不存在"
echo "End"
exit
fi
6、码云设置
项目-》WebHooks-》添加
@param access_key string HOOK密钥
@param param string 自定义参数(在hook脚本中使用$1接收,该参数一般定义为项目名称)
URL : http://面板/hook?access_key=123&param=aaa
密码 : access_key
事件 : 选择push则本地推送会自动同步到服务器相应目录
7、测试
如果没有成功则尝试登录服务器ssh手动git pull
好像首次要先登录服务器ssh手动git pull一下保存一下默认设置,之后就可以了