『CI/CD』使用Webhook通知服务器
在前面的 Github Actions 工作流中,我们最后都是直接使用 SSH 连接在服务器上执行命令,但是这样很不优雅,而且会被认为是服务器被异常登录
所以可以尝试使用 webhook
简单地说,就是先在服务器准备一个部署脚本,然后一直运行一个守护进程监听请求,触发 GitHub Actions 时发送请求,守护进程被收到后自动执行部署脚本
准备部署脚本
准备 redeploy.sh
1 |
|
这个很容易理解,在写完之后记得测试一下能不能成功运行
编写 webhook
这里为了方便,就直接使用一个库:https://github.com/adnanh/webhook
这东西看文档直接 apt 就能安装了
1 | sudo apt install webhook |
使用方法就是编写配置文件,然后运行时带上配置文件,就能根据规则监听请求
新建一个 webhook.json
1 | [ |
简单地说就是规定了执行的脚本,还有触发条件:url 中有 token
参数并且值为 1234567
时就触发
这东西还有很多高级用法,比如传参数给脚本,具体可以看文档,这里就不演示了
先测试一下运行效果
1 | webhook -hooks webhook.json -verbose |
然后手动请求一下
1 | curl "http://www.nickxu.top:9000/hooks/webhook?token=1234567" |
看来成功执行了脚本
现在就用 screen 或者其他方法让这东西跑在后台就行
修改 GitHub Actions 脚本
接下来的过程就显而易见了,在 GitHub Actions 脚本中加上这个请求就行
1 | - name: Webhook |
评论
GiscusTwikoo