使用 GitHub 的 Webhooks 自动部署 Ghost 主题
最近几天在做 Ghost 的主题 Adam,但是想要在远程调试就必须得 ssh 到服务器执行一下命令,光是 cd path/to/theme
就够烦了。于是想办法是否能让服务器自动从 github 上面 pull 代码,然后自动执行自定义命令让代码生效。
让服务器自动部署主题命令有两个方法:
用 Crond 执行周期任务,比如 1 分钟去 git 取一次。但是这样实时性其实并不那么好,并且如果任务所需负载较大 (我就是这种情况,因为主题需要用 Grunt 跑一堆命令才能生效),那就更无法接受了。
用 GitHub webhooks 监听 GitHub 发来的 HTTP POST 请求。
但是网上关于 webhooks 的资料实在是少之又少,中文的也基本上没有。自己也是弄了半天才搞明白,原谅我不是做 web 的吧,我只是一个手游客户端程序员 :D
详细资料可以在 GitHub Developer API Webhooks 找到。这里之做一些简单的说明。
GitHub Webhooks 是怎么工作的?