1. 程式人生 > 其它 >TravisCI部署Hexo部落格

TravisCI部署Hexo部落格

為了方便部落格管理,我是將部落格原始碼放在resource分支,最終生成部署的頁面檔案放在master分支,每次更新部落格都需要先提交部落格檔案,然後手動部署到GiHub Pages,次數一多就顯得麻煩,而且還容易出錯。那麼有沒有一種方法讓這個過程自動化,在提交完部落格檔案後自動幫我們編譯部署檔案到GitHub上呢?很幸運有現成的工具可供使用,使用Travis-CI就可以將整個過程自動化,下面借用一張圖片來說明Travis_CI的作用

準備工作

  • 一個Hexo原始碼倉庫,原始碼放在resource分支,編譯後的檔案放在master分支,類似於下面這樣:

  • 獲取GitHub_Token
    登入GitHub,在Settings / Developer settings / Personal access tokens

    中,新建一個token,許可權將repo選中就可以,生成的token一定要儲存好,等會配置在Travis中,只會顯示一次,丟失就需要再重新生成一個。

  • 進入Travis CI官網,設定許可權
    Travis可以使用GitHub賬號進行登入,進入設定(Settings),開啟需要自動編譯的公開倉庫

    然後點選右側的Settings按鈕,找到環境變數(Environment Variables),左側填一個名字,右側填寫剛剛獲取到的Github_Token,Display value in build log按鈕不要開啟,開啟後其他人就可以在日誌檔案中看到你的Github_Token

告訴Travis怎樣編譯我們的專案

在Hexo站點目錄,也就是.config.yml檔案同級目錄,建立一個名為.travis.yml的檔案

language: node_js # 語言
node_js: stable # node.js版本
cache:          # 快取,加快下次編譯速度
  directories:
    - node_modules

branches:      # 監控 resource分支,此分支發生變化就啟動一次新的構建
  only:
    - resource

before_install:  # 和自己電腦上安裝的hexo-cli一樣,也需要安裝依賴環境
  - npm install -g hexo-cli

install:
  - npm install
  - npm install hexo-deployer-git --save
    
script:        # 編譯Hexo
  - hexo clean
  - hexo generate

after_script:  # 編譯完成後推送到GitHub上
  - git config user.name "wrxiang"  
  - git config user.email "[email protected]"
  
# 將.config.yml中的文字`Travis`替換為環境變數中的{Travis}代表的那串密碼
  - sed -i "s/Travis/${Travis}/g" ./_config.yml  
  - hexo deploy

我們還需要修改_config.yml檔案的deploy節點

#修改前
deploy:
  - type: git
    repo: [email protected]:wangruix/wangruix.github.io.git
    branch: master
#修改後
deploy:
- type: git
  # 下方的gh_token會被.travis.yml中sed命令替換
  repo: https://[email protected]/wangruix/wangruix.github.io.git
  branch: master

最後將新建立的.travis.yml檔案提交到原始碼路徑

我們就可以新增一篇部落格,完成後將部落格提交到原始碼分支,然後就可以到Travis檢視構建情況,Job log中可以檢視詳細的構建日誌

Travis構建完成後會將生成的檔案推送到Github上,這樣我們只需要提交部落格的原始檔,然後Travis幫我們完成構建部署過程,部落格釋出更新更加方便了。

參考文章

Travis CI使用經驗
用TravisCI持續整合自動部署Hexo部落格的個人實踐

本文來自部落格園,作者:風煙景,轉載請註明原文連結:https://www.cnblogs.com/wrxiang/p/15376606.html