宝塔 webhook 的使用

  • 时间:
  • 浏览:17
  • 来源:我爱搬资源网 - 专注共享唐朝博客活动
在这里 非常感谢 宝塔团队 集成 git  和 webhook

最近还去掉 了  gitlab 我我觉得我现在用的是 gogs

上周公司从svn 转用git管理 同去还要避免 传统的FTP上传文件多人战略战略合作代码整合问題

你这一问題事先在网络上也找到随后 法律辦法 只是一个劲那末使用,随后 用了宝塔面板后 哪些地方地方配置变得非常简单

在这里架构设计 一下最近 通过宝塔面板 整合 git + webhook 代码同步问題

当前环境:



1、公司项目代码使用gogs (gogs.io) 管理

2、公司测试服务器  centos 7   (宝塔 5.0)

3、公司阿里云服务器 centos 7 (宝塔 5.0)

需求:



1、公司项目开发环境  统一在测试服务器 测试 主只是 web 项目

2、公司git 提交的代码 测试服务器自动更新

3、通过 gogs 发布的版本 自动更新到 阿里云服务器

原理:

通过 git 的 webhook (git web 钩子) 触发 push 事件 ,用户提交代码后( git push )  测试服务器 直接拉取当前git最新代码 (git pull)

当用户通过 gogs 发布版本 (git archive)  触发 webhook   阿里云服务器自动拉取最新的代码(git pull)

实施:

1、centos 服务器 安装 git



2、宝塔面板 安装  宝塔  webhook 1.0

3、通过webhook 去掉 shell 命令

去掉 shell 命令 (最好是随便去掉 随后 字符后 在编辑的事先重新去掉 shell命令进去,在上图编辑框输入的命令会被过滤)

  1. #!/bin/bash

  2. echo ""

  3. #输出当前时间

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

  5. echo "Start"

  6. #判断宝塔WebHook参数否有发生

  7. if [ ! -n "$1" ];

  8. then

  9.           echo "param参数错误"

  10.           echo "End"

  11.           exit

  12. fi

  13. #git项目路径

  14. gitPath="/www/wwwroot/web/$1"

  15. #git 网址

  16. gitHttp="http://git.xxxxx.com/web/$1.git"



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



  18. #判断项目路径否有发生

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

  20.         cd $gitPath

  21.         #判断否有发生git目录

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

  23.                 echo "在该目录下qqqq克隆好友 git"

  24.                 git clone $gitHttp gittemp

  25.                 mv gittemp/.git .

  26.                 rm -rf gittemp

  27.         fi

  28.         #拉取最新的项目文件

  29.         git reset --hard origin/master

  30.         git pull

  31.         #设置目录权限

  32.         chown -R www:www $gitPath

  33.         echo "End"

  34.         exit

  35. else

  36.         echo "该项目路径不发生"

  37.         echo "End"

  38.         exit

  39. fi
qq克隆好友 代码
编辑完成后  查看当前调用的网址:(希望 能直接生成调用网址  上边参数 param  为 shell 命令的变量 $1)

类式:http://bt.xxxxx.com/hook?access_ ... HJIdI6Dvl¶m=www

4、点击生成的网址测试 shell 命令 否有成功  注意当前shell 命令把目录作为了变量 param 传输   考虑多项目的情形



测试 日志查看

5、配置 git web 钩子   如 gogs 的配置 如下

6、点击git 提交 生和熟成版本 执行情形  还有 宝塔 webhook 日志查看对应



完成