使用宝塔部署node项目_使用宝塔面板进行项目的自动部署WebHook

首先你要知道什么是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

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享