首先你要知道什么是WebHook,如果你真的不想知道那也没关系。总之就是在你push到git仓库时会从git仓库触发一个http请求。关于http的地址根据你不同的git仓库有不同的方式去配置。
首先配置宝塔面板,你需要安装宝塔插件中的 WebHook
随便起一个名字然后保存
这时你会在列表中看到新增加的名称,点击查看密钥 获取密钥并配置到git仓库中,如下gitee.com仓库
注意ip和端口号之间有一个冒号 :
关于使用git ssh 需要你配置ssh密钥,可以使用
ssh-keygen -t rsa -C “name@mail.com”如果没有才执行这个命令并将公钥设置为部署公钥
查看命令是 cat ~/.ssh/id_rsa.pub
如下代码点击编辑后输入并保存
需要替换gitPath的项目储存路径和 gitSSH 为你的项目的gitSSH地址信息
#!/bin/bash
#输出空白行 隔断
echo ""
#输出当前时间
date +"%Y-%m-%d %H:%M.%S"
echo "Start"
#判断宝塔WebHook参数是否存在
#if [ ! -n "$1" ];
#then
# echo "param参数错误"
# echo "End"
# exit
#fi
#git项目路径
gitPath="/www/wwwroot/www.daohang.dev"
#git 网址 这里要修改成你的仓库地址
gitSSH="git@gitee.com:yanlong-li/daohang.dev.git"
# 定义自定义脚本的文件名称
buildScript="buildScript.sh"
echo "Web站点路径:$gitPath"
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
git clone $gitSSH gittemp
mv gittemp/* gittemp/.[^.]* .
rm -rf gittemp
fi
#拉取最新的项目文件
#git reset –hard origin/master
echo "正在拉取远程代码"
git pull
#设置目录权限
#chown -R www:www $gitPath
echo "拉取结束"
else
echo "该项目路径不存在"
echo "End"
exit
fi
# 下面是自定义的一个脚本,用于自定义的执行动作 如果不需要可以删除
if [ -f "$buildScript" ]; then
chmod +x $buildScript
./$buildScript
else
echo '不存在执行脚本';
fi
echo "脚本执行结束"
下面是我用来编译 Vue的一个脚本,也一起放上来
前提你要安装了 mp2管理器 或者手动安装了 node+npm
# 编译脚本 buildScript.sh
logUpdatePath="log/update"
logBuildPath="log/build"
# 更新依赖
logDate=$(date +"%Y-%m-%d-%H-%M")
if [ ! -d "$logUpdatePath" ]; then
mkdir -p $logUpdatePath
fi
if [ ! -d "$logBuildPath" ]; then
mkdir -p $logBuildPath
fi
echo "更新依赖"
npm install
echo "编译项目"
npm run build
echo "设置权限"
chown -R www:www dist/[^.]*
echo "运行结束"
注意 有时候可能在Webhook中无法识别到node和npm,重装WebHook即可
使用图中的方法进行新建一个,然后提交后点击测试,然后查看日志,如果是空白则需要重装WebHook
原文链接:https://blog.csdn.net/weixin_39951295/article/details/111857257