小蒋同学

小蒋同学

· Linux · · 611次浏览

利用宝塔 webhook 插件 实现自动拉取最新代码

原理

当版本库代码更新时,通过 git 的 webhook(git web 钩子)触发 push 事件。用户提交代码(git push)服务器的宝塔 webhook 插件拉取当前 git 最新代码(git pull)。

步骤

1、CentOS 服务器安装宝塔面板:宝塔面板
linux_pc_free.png

2、安装 git:

yum install git

Tips: Git 生成 SSH 公钥

3、宝塔面板软件商店安装 宝塔WebHook;
20191110195119.png

4、添加 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/web/$1"
#git 网址
gitHttp="http://git.xxxxx.com/web/$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

5、保存后,查看密钥获取调用地址:
20191110195333.png

http://IP地址:8888/hook?access_key=Ek5nOl6jXWOmTZLV0Hb4UXcfDbsdc3WCMpHJIdI6Dvl&param=www

参数 param 为命令中的变量 $1

6、查看宝塔 webhook 日志,拉取是否成功
20191110195440.png

评论功能已被作者关闭