利用Webhooks实现博客自动推送
- 2018-9-15
- Git
我的 Hexo 博客以前是 hexo g
后是直接 deploy
到阿里云ECS,前一段时间部署 deepin开发指南 的时候用的完全不同的一种思路 —— Webhooks。 Github 为开发者提供一个功能,当你们的本地 repo 推送到 github 时,可以选择使用 Webhooks (官方文档请戳这里通知你的服务器,然后服务器收到通知后执行相应的操作。 ### 阿里云 ECS 相应的目录结构 1
2
3
4
5
6
7
8webhooks
├── deepin-develop-guide
│ ├── deploy.sh # deepin.lolimay.cn 部署脚本
│ └── public
├── lolimay-blog-source
│ ├── deploy.sh # lolimay.cn 部署脚本
│ └── public
└── webhooks.js # 监听脚本,用于监听 Webhooks
webhooks.js
webhooks 用于监听 github 的通知,github 通过访问指定的 url 来触发相应的 webhooks。 1
2
3
4
5
6
7
8
9
10
11
12
13
14const http = require('http')
const exec = require('child_process').exec
http.createServer((req, res) => {
switch(req.url) { // 根据 url 执行相应的部署脚本
case '/webhooks/deepin-develop-guide':
exec('sh deepin-develop-guide/deploy.sh')
break
case '/webhooks/lolimay-blog-source':
exec('sh lolimay-blog-source/deploy.sh')
break
}
res.end()
}).listen(/* 这里换成你需要监听的端口 */, "0.0.0.0")
deploy.js
1 | # 初始化脚本执行环境 |
后记
由于这篇博文是给博主自己备忘的,所以很多地方都说的不是很清楚,这里有一篇写的特别详细的教程,感兴趣的同学可以看看。