2构建个人博客--使用Webhook自动发布

概述

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

github设置钩子

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

编写接口

生产环境一般是使用Travis Ci或者Jenkins来实现类似功能,但这对于我来说有点重型了。所以自己写个接口简单实现下。
需求很简单,每当有代码推送的时候,拉取git并发布到blog部署目录。

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

 [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内容,再拷贝到部署目录就行了。

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

这里有3个小坑要注意

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

完成

大功告成。接下来可以愉快的写日志了,写完只需要签入,自动发布,爽!

这篇博客由系统自动发布

posted @ 2020-03-14 22:48  holdengong  阅读(350)  评论(0编辑  收藏  举报