GIT 第29章 宝塔利用Git+WebHook实现与码云同步【自动部署】 GIT 第29章 宝塔利用Git+WebHook实现与码云同步【自动部署】

2023-08-08

一、配置 SSH 公密

https://lulublog.cn/p/LN9FK4

将公钥配置到码云

  • 打开码云的项目地址

  • 管理-添加公钥

https://file.lulublog.cn/images/3/2023/08/P905toEMo5eD15915C1xe70lXT4N7o.jpg

二、将项目拉取到云服务器

切换到项目目录

git clone git@gitee.com:xxxx/xxxxxxxx.git

三、宝塔安装 webhook

软件商品搜索:WebHook

https://file.lulublog.cn/images/3/2023/08/GKaD4u3Xu3U6xV6U8dA586UuUxX6iD.jpg

添加 Hook

  • 名称填写项目名称

  • 执行脚本如下

    • 记得修改项目路径

  • sudo git pull,必须使用 sudo

#!/bin/bash
echo '代码更新:' $(date '+%Y-%m-%d %H:%M:%S')
cd 项目路径
sudo git pull
chown -R www:www ./
chmod -R 755 ./
echo "更新成功"

https://file.lulublog.cn/images/3/2023/08/sMNAu0EhELtshFTglRMunaJ1b0enFc.jpg

四、配置 gitee WebHook

打开宝塔配置的 hook:查看密钥

https://file.lulublog.cn/images/3/2023/08/RFXf6F0OoQy7hxKKkzhfM0x1oo6O77.jpg

将 WebHook 配置到码云

  • 打开码云的项目地址

  • 管理-WebHooks

  • 将链接和密钥分别粘贴后,点击添加

https://file.lulublog.cn/images/3/2023/08/bpnGjmZx25X92SttnwDXE5pMytmN5N.jpg

注意:链接后面的参数可以变化,比如 param=pull,脚本可以根据这个参数来判断是否执行

#!/bin/bash
echo '代码更新:' $(date '+%Y-%m-%d %H:%M:%S')

if test $1 = 'web'
then
 cd /mnt/wwwroot/jph/prod/web
else
 cd /mnt/wwwroot/jph/prod/api
fi

sudo git pull
chown -R www:www ./
chmod -R 755 ./

sudo git status
sudo git add -A
sudo git commit -m 'linux'
sudo git push

echo "更新成功"

elif

if test $1 = 'web'
then
  cd /mnt/wwwroot/bsjr/prod/web
elif test $1 = 'api'
then
  cd /mnt/wwwroot/bsjr/prod/api
else
  cd /mnt/wwwroot/bsjr/prod/wss
fi

五、测试同步

本地提交代码

宝塔 WebHook 的调用次数会 +1

https://file.lulublog.cn/images/3/2023/08/yvyys5921J5S44WO24k9125aq51lJ9.jpg

码云的 WebHooks 会日志

https://file.lulublog.cn/images/3/2023/08/BS9eQgt5gu9G6uomtcYcqTquzUZStt.jpg

阅读 422