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

相關文章
相關標籤/搜索