1. 程式人生 > 其它 >Hexo&github action持續部署

Hexo&github action持續部署

目的

  • 為了免除日常新建hexo new,hexo s,hexo g,hexo d等繁瑣的書寫部署流程指令,同時為了更加註重於部落格內容本身而不是到新機器重新配置Hexo走一遍部署流程

持續整合 & 持續釋出 & 持續部署

  • 舉個例子,就像流水線都有固定裝配步驟,從原材料持續生成成品進行交付。那也就是這個原理意思,當代碼有修改則從原始碼持續整合生成可釋出版本,再持續部署到主幹版本程式碼上
  • 有利於儘早發現整合錯誤,避免過大分支最後整合的困難

新建Hexo原始碼庫

  • 在你本地部落格根目錄下新建一個.gitignore檔案,內容如下:
    .deploy_git
    node_modules
    public
    
  • 到github上新建一個私有倉庫,專門用來存放你的Hexo原始碼。注意不是通過hexo d部署後的程式碼,而是同過push遠端倉庫的本地目錄原始碼,目前先不用push,建好倉庫就行

部署私鑰

  • 在Hexo私有原始碼庫將git的私鑰進行新增,作為DEPLOY_KEY。位置:Settings > Secrets

新建存放Hexo部落格的公有庫

  • 在github上新建一個公有倉庫,用來存放你生成的Hexo部落格,並使用github pages。具體做法在搭建hexo部落格的過程會接觸到,不細說。

新建hexo-deploy.xml

  • 在本地hexo部落格根目錄下的.github資料夾下新建workflows資料夾,新建hexo-deploy.xml檔案。
  • 具體書寫內容可參考 GitHub Action ~ Hexo Action
  • 我個人修改內容如下:
    ......
    # Deploy hexo blog website.
    - name: Deploy
        id: deploy
        uses: sma11black/[email protected]
        with:
            deploy_key: ${{ secrets.DEPLOY_KEY }}
            PUBLISH_REPOSITORY: # Hexo公共倉庫,格式:GitHub 使用者名稱/倉庫名
            BRANCH: # Hexo公共倉庫分支,你生成部落格存放的分支
            PUBLISH_DIR: ./public # 部署 public 目錄下的生成部落格檔案,預設不用修改
    ......
    
  • 然後將你的hexo原始碼push到遠端私有倉庫上

釋出文章

  • 在你部落格本地目錄下的source資料夾內的_posts資料夾下盡情書寫部落格吧
  • 寫完部落格通過關聯遠端Hexo私有原始碼庫進行push,github action檢測到分支變動會進行重新編譯並重新部署public下部落格內容到你的公有庫
  • 當你換一臺機器進行部落格書寫,只需要關聯遠端原始碼庫進行pull下,就可以馬上進行內容書寫了

其他途徑方式

  • Travis CI