zoukankan      html  css  js  c++  java
  • 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 是脚本可执行

    完成

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

    这篇博客由系统自动发布

  • 相关阅读:
    HTTP协议
    MySQL建立主-从服务器双机热备配置
    centOS7安装配置mysql5.7.21
    修改docker镜像的默认存储目录
    docker--学习笔记
    MySQL数据库操作
    zabbix注意事项和常用命令
    CnentOS6.5安装zabbix2.2
    如何查询一个进程下面的线程数(进程和线程区别)
    OSPF与ACL实例
  • 原文地址:https://www.cnblogs.com/holdengong/p/12494965.html
Copyright © 2011-2022 走看看