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

  • Post author:
  • Post category:其他


  • 1. 将项目拉取到云服务器
  • 2. 配置 SSH 公共密钥
  • 3. 宝塔安装webhook
  • 4. 配置 gitee WebHook
  • 5. 测试同步

1. 将项目拉取到云服务器



拉取指定分支到云服务器


  1. git clone -b 分支名 仓库地址

  1. git clone -b liang https://gitee.com/holyking/test.git


配置永久记住密码


  1. git config --global credential.helper store

2. 配置 SSH 公共密钥



生成 SSH 密钥, 一路回车


  1. ssh-keygen -t rsa


查看

SSH 公钥


  1. cat ~/.ssh/id_rsa.pub


配置 gitee 仓库的

部署公钥





3. 宝塔安装webhook



脚本文件


  1. #!/bin/bash

  2. echo ""

  3. #输出当前时间

  4. date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"

  5. echo "Start"

  6. #git分支名称

  7. branch="liang"

  8. #git项目路径

  9. gitPath="/www/wwwroot/ft.itqaq.com/test"

  10. #git 仓库地址

  11. gitHttp="https://gitee.com/holyking/test.git"

  12. #gitHttp="http://192.168.2.20/llh/$1.git" //多仓库的时候

  13. echo "Web站点路径:$gitPath"

  14. #判断项目路径是否存在

  15. if [ -d "$gitPath" ]; then

  16. cd $gitPath

  17. #判断是否存在git目录

  18. if [ ! -d ".git" ]; then

  19. echo "在该目录下克隆 git"

  20. sudo git clone $gitHttp gittemp

  21. sudo mv gittemp/.git .

  22. sudo rm -rf gittemp

  23. fi

  24. echo "拉取最新的项目文件"

  25. #sudo git reset --hard origin/$branch

  26. git remote add origin $gitHttp

  27. git branch --set-upstream-to=origin/$branch $branch

  28. sudo git reset --hard origin/$branch

  29. sudo git pull $gitHttp 2>&1

  30. echo "设置目录权限"

  31. sudo chown -R www:www $gitPath

  32. echo "End"

  33. exit

  34. else

  35. echo "该项目路径不存在"

  36. echo "新建项目目录"

  37. mkdir $gitPath

  38. cd $gitPath

  39. #判断是否存在git目录

  40. if [ ! -d ".git" ]; then

  41. echo "在该目录下克隆 git"

  42. sudo git clone $gitHttp gittemp

  43. sudo mv gittemp/.git .

  44. sudo rm -rf gittemp

  45. fi

  46. echo "拉取最新的项目文件"

  47. #sudo git reset --hard origin/$branch

  48. sudo git pull gitHttp 2>&1

  49. echo "设置目录权限"

  50. sudo chown -R www:www $gitPath

  51. echo "End"

  52. exit

  53. fi


脚本文件中的项目目录、git地址、git分支名替换成自己的


  1. # 远程分支

  2. branch="master"

  3. # 换成自己宝塔项目根目录

  4. gitPath="/www/wwwroot/test"

  5. # gitee 仓库地址

  6. gitHttp="https://gitee.com/holyking/test.git"


4. 配置 gitee WebHook



复制宝塔的 WebHook 提供的URL和密钥


在 gitee 仓库的 WebHook 中添加 WebHook



5. 测试同步


码云仓库随意改个文件保存一下, 生成新的提交记录, 看云服务器上有没有同步更新