2构建我的博客--使用Webhook自动发布

概述

上篇介绍了怎么利用hugo搭建我的博客。 有一个地方仍是有点不方便,就是git push以后须要等半个小时才能发布。
因此我想利用github的webhook实现每次推送自动发布。git

github设置钩子

所谓的webhook,就是钩子,就是github搞事情的时候就会通知你。因此你须要准备一个接口接收github的post请求。 这里我设置为接收json格式数据,仅push时通知。
imagegithub

编写接口

生产环境通常是使用Travis Ci或者Jenkins来实现相似功能,但这对于我来讲有点重型了。因此本身写个接口简单实现下。
需求很简单,每当有代码推送的时候,拉取git并发布到blog部署目录。web

我这里使用.net core实现,代码十分简单,其实就一行,执行blog.sh脚本。json

[ApiController]
    public class GitSubscriberController : ControllerBase
    {
        [Route("api/blog/gitsubscriber")]
        [HttpPost]
        public IActionResult GitSubscriber([FromBody]object request)
        {
            Process.Start("/scripts/blog.sh");
            return Ok();
        }
    }

再看下这个blog.sh脚本的内容,也很简单,首先拉取git内容,再拷贝到部署目录就好了。api

#!/bin/bash
cd /git/blog
git pull
cp -rf /git/blog/public/. /www/wwwroot/www.holdengong.com/

这里有3个小坑要注意bash

  • 第一行的 #!/bin/bash 是必须的
  • 脚本必须是ANSI编码
  • 须要执行命令 chmod +x blog.sh 是脚本可执行

完成

大功告成。接下来能够愉快的写日志了,写完只须要签入,自动发布,爽!并发

这篇博客由系统自动发布post

相关文章
相关标签/搜索