1、首先在宝塔安装插件“宝塔Web Hook”;
2、安装完成添加hook,一个hook对应一个站点, hook名称任写,建议站点名称避免混乱,一下为脚本代码;
#!/bin/bash
sudo ssh-add /root/.ssh/id_rsa
sudo ssh-add -l |cat
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
echo $1
#判断宝塔webhook参数是否存在
if [ ! -n "$1" ];
then
echo "param参数错误"
echo "End"
exit
fi
#git项目路径
gitPath="XXX 需要替换为对应站点目录,.git同级根目录"
#git 网址两种方式都可以ssh 或者https
gitHttp="XXX git仓库地址,推荐部署.ssh,使用ssh地址"
#gitHttp="git@gitee.com:xxx/$1.git"
echo "Web站点路径:$gitPath,git地址:$gitHttp"
username="git仓库账号"
password="git仓库密码"
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
sudo git clone $gitHttp gittemp
sudo mv gittemp/.git .
sudo mv gittemp/* .
sudo rm -rf gittemp
fi
echo "拉取最新的项目文件"
#sudo git reset --hard origin/master
sudo git pull origin master
echo "设置目录权限"
sudo chown -R www:www $gitPath
echo "End"
exit
else
echo "该项目路径不存在"
echo "新建项目目录"
mkdir $gitPath
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
sudo git clone $gitHttp gittemp
sudo mv gittemp/.git .
sudo mv gittemp/* .
sudo rm -rf gittemp
fi
echo "拉取最新的项目文件"
#sudo git reset --hard origin/master
sudo git pull
echo "设置目录权限"
sudo chown -R www:www $gitPath
echo "End"
exit
fi
3、添加完成之后,查看密钥
4、打开git建立相关仓库,并添加ssh密钥;
5、按照以下顺序添加仓库webhooks,
“4”对应步骤3的GET/POST的地址,在地址中需要将自己宝塔的公网ip或者域名补充到端口之前,地址后面的参数可改可不改。
“5”对应步骤3中的密钥,输入完之后添加即可。
6、进行本地文件修改推送测试,如果宝塔面板上面未进行更新,首先打开宝塔上面的webhook查看日志(如下图),
根据日志输出内容判断脚本代码是否执行出错,如果脚本打印正常,需要在站点根目录(.git文件夹同级)使用终端手动拉取代码,拉取命令“git pull origin master”具体分支视自身情况而定;如果提示需要输入账号和密码的话输入git网站的信息继续,然后重复拉去2-4次来确定是否每次都需要输入密码;如果每次都需要的话执行一下命令:
1)git config --global credential.helper store
2)git pull
7、执行过“步骤
6”之后宝塔面板一定是最新的,然后打开本地代码继续进行修改,提交测试,这时候已经成功的同步到宝塔对应站点。
作者:ZhiChao.Cui
1. 本网站部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长(1511545254@qq.com)进行删除处理,承诺将在一个工作日内及时进行改正。
2. 本网站一切内容不代表本站立场,且并不代表本站赞同其观点和对其真实性负责。