通过宝塔的webhook插件,实现把码云上的项目自动同步到web服务器指定路径下
- 确保web服务器里安装了git 可通过git –version查看
- 进入宝塔面板,软件管理-》宝塔插件,搜索wekhook,然后安装即可
- 添加hook
脚本内容:
脚本代码:
#!/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/zixue"
#git 网址
gitHttp="git@gitee.com:xxxx.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
注意:添加完后,点击编辑查看脚本内容是否正确,在上图输入框输入的命令会被过滤,所以要重新添加shell命令进去
- 查看秘钥
接下来就是在码云等其他平台里做配置了,这里以码云为例
- 打开码云仓库,添加WebHooks
- 设置私有仓库代码同步
首先登录服务器 输入命令cd ~/.ssh && ls查看有没有SSH key
如果没有,使用命令ssh-keygen -t rsa -C "your_email@example.com"生成。如下图所示:
复制好id_rsa.pub文件内容后,打开码云的私有项目,依次点击:管理->添加公钥,如图:
在码云上添加好公钥后,使用ssh -T git@gitee.com测试SSH连接:
更改宝塔hook脚本中的仓库地址为码云私有项目仓库的SSH连接地址
至此完毕,如果不成功,可以尝试更新一下webhook