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、添加完成之后,查看密钥
image
4、打开git建立相关仓库,并添加ssh密钥;
5、按照以下顺序添加仓库webhooks,
        “4”对应步骤3的GET/POST的地址,在地址中需要将自己宝塔的公网ip或者域名补充到端口之前,地址后面的参数可改可不改。
        “5”对应步骤3中的密钥,输入完之后添加即可。
image


6、进行本地文件修改推送测试,如果宝塔面板上面未进行更新,首先打开宝塔上面的webhook查看日志(如下图),
image
根据日志输出内容判断脚本代码是否执行出错,如果脚本打印正常,需要在站点根目录(.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. 本网站一切内容不代表本站立场,且并不代表本站赞同其观点和对其真实性负责。

 评论