宝塔 WebHook自动更新代码,并且自动编译重启项目

1 篇文章 0 订阅
1 篇文章 0 订阅
本文介绍了在CentOS7环境下,使用宝塔面板7.9.5和webhook,配合PM2应用管理器进行自动化部署的过程。通过创建webhook并配置相关脚本,实现了每次修改代码后自动拉取并更新代码,避免手动部署的繁琐步骤。文章强调了脚本中的关键配置,包括设置node和npm的路径,以及git和pm2的相关操作。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

本次环境:centos 7 + 宝塔7.9.5 + webhook + pm2管理器 5.4
出发点:每次修改完BUG后,总是需要自己手动去测试环境进行码拉取并部署,非常麻烦。所以便部署了自动更新的想法。
其他:本文章只适用于 宝塔 环境,其他环境的同学可以不用往下看了
吐槽:网上有很多教学,那么我为什么又重新写了一遍,就是因为网上的教学根本就不完整!部署完一般根本就不能跑,需要找半天问题!


教程正式开始:

一、安装 webhook

在这里插入图片描述

二、配置 webhook 数据

  1. 将 node 软连接到 /usr/bin 文件夹中
# 不要直接复制,请根据你实际的 node 地址进行调整
sudo ln -s /www/server/nvm/versions/node/v18.12.0/bin/node /usr/bin/node
  1. 将 npm 软链接到 /usr/bin 文件夹中
 # 不要直接复制,请根据你实际的 node 地址进行调整
sudo ln -s /www/server/nvm/versions/node/v18.12.0/bin/npm /usr/bin/npm
  1. 在宝塔,找到webhook,打开新增webhook。
  2. 填写好其他的资料,下一步设置相关的脚本
  3. 脚本如下(仔细阅读,你能大概读懂,有些注释的)
#!/bin/bash
# 这里重点说明:这个地址一定要写,不写会导致 npm 和 PM2 没办法运行
# 但是需要注意:这里要改为你自己的 node 地址, 我的地址是:/www/server/nvm/versions/node/v18.12.0/bin 
# 所以我会填写 export NPM="/www/server/nvm/versions/node/v18.12.0/bin"
export NPM="XXX"
PATH=$PATH:$NPM
export $PATH
# 这里页一定要写,不写 pm2 会报错
# 我的pm2文件地址是: /root/.pm2/
# 所以我会填写 export PM2_HOME=/root/.pm2/
export PM2_HOME=XXX

#echo ""
# 输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"

# 判断宝塔WebHook参数是否存在,需要用到param参数的话可以开启此判断,否则可注释
# if [ ! -n "$1" ];
# then 
#           echo "param参数错误"
#           echo "End"
#           exit
# fi

# git项目路径, $1为webhook请求链接param的值,也可写死,这样请求的param可以whatever
gitPath="/www/wwwroot/twzg2301_vue"
# git 网址, $1为webhook请求链接param的值,也可写死,这样请求的param可以whatever
gitHttp="git@gitee.com:tangwzg/twzg2301_vue.git"
# 进入到文件目录
cd $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
        
        echo "开始拉取代码"
        #pull命令记得加sudo
        sudo git pull origin master
        echo "拉取完成"
        
        #按需开启npm 安装和部署命令
        #npm install
       	# 这里敲重点啊!!!! webhook出错了是不会记录在日志中,所以你可以把运行的语句内容打印到规定的文件中,这样方便调试,调试完成后再删除掉 
        # npm run build && > ~/webhook.log 2>&1
        npm run build
        # 这里也是,调试可以打印到你想要展示的文件中
        # /www/server/nvm/versions/node/v18.12.0/bin/pm2 restart twzg2301_vue > ~/webhook_pm2.log 2>&1
        /www/server/nvm/versions/node/v18.12.0/bin/pm2 restart twzg2301_vue
        # 设置目录权限
        sudo chown -R www:www $gitPath
        echo "End"
        exit
else
        echo "该项目路径不存在"
        echo "End"
        exit
fi

总结

完结撒花

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值