webhook自定义服务器,GO 使用Webhook 实现github 自动化部署

1. 下载github-webhook工具:

wget http://img.sgfoot.com/github-webhook1.4.1.linux-amd64.tar.gz

2. 运行github-webhook 安装

tar -zxvf github-webhook1.4.1.linux-amd64.tar.gz

cp github-webhook /usr/bin/chmod u+x /usr/bin/github-webhook

3.运行方式

默认端口: 2020,可以更改, http的路由: /web-hook有效访问地址: http://ip:2020/web-hook

-b 是shell脚本路径参数-s 是github webhook设置的密码

参数说明:

# 非后台运行

github-webhook -b [shell脚本路径] -s [github webhook设置的密码]

# 后台运行

nohup github-webhook -b [shell脚本路径] -s [github webhook设置的密码] 定向日志输出

nohup github-webhook -b ~/sh/你的脚本.sh -s hook密码 >> ~/logs/webhook.log 2>&1 &

特性介绍

直接运行二进制文件

自定义脚本路径

自定义密码

自定义端口. 0 ~ 65535

安静模式

GLOBAL OPTIONS:--bash value, -b value Execute the script path. eg: /home/hook.sh--port value, -p value http port (default: 2020)--secret value, -s value github hook secret--quiet, -q quiet operation (default: false)--verbose, --vv print verbose (default: false)--help, -h show help (default: false)--version, -v print the version (default: false)

翻译:

GLOBAL OPTIONS:--bash value, -b value Execute the script path. eg: /home/hook.sh 自定义脚本--port value, -p value http port (default: 2020) 自定义端口,默认6666--secret value, -s value github hook secret 自定义密码, 不允许为空--verbose, --vv print verbose (default: false) 打印更多详细信息--quiet, -q quiet operation (default: false) 安静模式,默认关闭. -q 开启,不输出任何信息--help, -h show help (default: false)--version, -v print the version (default: false)

上面介绍几本参数使用。好了,言归正传:

部署脚本编写,该 shell 脚本的主要目的是从 github 拉取代码,脚本内容很简单,只做了目录的简要判断,

代码目录存在则更新,不存在则克隆仓库,工作目录和仓库名称、地址请换成大家自己的。

cd ~/mkdir sh

vim webhook.sh

webhook.sh:

#!/bin/bash

cd/www/wwwroot/Golang/src

if [ !-d "easy-gin" ]; then

git clone https://github.com/fantasylxh/easy-gin

fi

cd easy-gin

git pull

配置github webhook

设置的密码必须与服务器运行github-webhook -s设置的密码一致.

bbb9325692bc0da3bfcc462772042195.png

03f2a66e8d53cc152d9df2d838ab2a10.png

4aa0a2a67836d54c974c21661dffa4d2.png

启动本地的sh脚本:

github-webhook -b ~/sh/webhook.sh -s webhook123 >> ~/logs/webhook.log 2>&1 &

37df71e53d49585c6c12a238e61f419b.png

确认githup webhook连接是否正常:

9f0a2b6430e66628b46d6064575e4255.png

测试webhook是否生效

git push后, 就可以看到github推送的信息,比如本地我新增push一个文件:

28046e3599e27ba3380c73f1826a58ec.png

执行Commit->push 之后,我们再看服务器代码是否自动更新:

d07f5b2155965dd57c592708bc3b3c02.png

到此:webhook 通讯正常。 sh脚本没有验证当前分支,只做了简单的pull,可以带上-f 强制更新,有兴趣的博友可以完善下sh。

欢迎拍砖留言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值