每次修改文章之后部署太麻烦了,然后参考了很多文章,可惜没有一个通的,我就借鉴下简化了一下

gitee为例,利用webhook

1. 新建仓库,

如果为私人仓库,服务器需要配置好ssh公钥,公有的不需要权限

2. 为服务器配置公钥

  1. 生成 RSA 密钥
  • ssh-keygen -t rsa
  1. 获取 RSA 公钥内容,并配置到 SSH公钥 中
  • cat ~/.ssh/id_rsa.pub

3. 安装宝塔,新建站点,软件商店安装webhook插件

4. 配置WebHook

名称随便填,脚本填最下面的,git分支宝塔项目路径git仓库地址自行修改

gitee开启webhooks

  1. 点击仓库——管理——WebHooks
  2. URL和WebHook密码填宝塔webhook插件——查看密钥里的内容
  3. 完成后点击测试或者git push测试效果

WebHook脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"

# 自定义配置
# 要同步的git分支
brach="master"
# 宝塔项目路径 自己的站点路径
sitePath="/www/wwwroot/106.55.10.75"
#git仓库的链接 https协议需要每次验证用户名和密码,所以必须要git协议
gitHttp="git@gitee.com:awy0718/test-git-push-server.git"

echo "Web站点路径:$sitePath"

# 判断项目路径是否存在
if [ -d "$sitePath" ]; then
cd $sitePath
#判断是否存在git目录,存在直接拉取
if [ ! -d ".git" ]; then
echo "拉取git"
sudo git clone $gitHttp gittemp
sudo mv gittemp/.git .
sudo rm -rf gittemp
fi
echo "拉取最新的项目文件"
sudo git reset --hard origin/$brach
sudo git pull origin $brach
echo "设置目录权限"
sudo chown -R www:www $sitePath
echo "拉取完成"
echo "End"
exit
else
echo "项目路径配置错误"
exit
fi