使用 hexo + gitPages
搭建我的博客的人都知道,每當要發表一篇博文,第一步得手動使用 hexo g
命令生成靜態網頁,而後還得經過 hexo d
命令將靜態文件推送到GitHub遠程倉庫,不說麻煩不麻煩,更重要的是有時候環境換了,沒有搭建 hexo 環境,想發篇博客的時候就沒有可能了。而如今經過 Travis CI 就能自動構建本身的博客。咱們只需將寫好的 Markdown
格式的博文push
到 hexo源文件 分支便可。node
Travis CI 是目前新興的開源持續集成構建項目,它與 jenkins,GO的很明顯的特別在於採用 yaml 格式,簡潔清新獨樹一幟。目前大多數的 github 項目都已經移入到 Travis CI 的構建隊列中,聽說 Travis CI 天天運行超過 4000 次完整構建。git
Hexo 是一個快速、簡潔且高效的博客框架。Hexo 使用 Markdown(或其餘渲染引擎)解析文章,在幾秒內,便可利用靚麗的主題生成靜態網頁。github
個人博客自動部署思路是,將 hexo
源碼 push
到博客 項目的另一個分支,
既一個分支放源碼,一個分支放靜態文件,使用 Travis CI
自動部署 hexo 源碼的分支,構建完成後自動推送到 靜態文件的分支上,而這一切都在一個倉庫上進行操做。
注意:若是使用的是GitPage
的我的站點來搭建博客的 ,則博客靜態文件在 master
分支上;若是使用的是 gitPages
的項目站點來搭建博客,則博客的靜態文件在 gh-pages
分支上。npm
若是想要 讓travis CI
構建完成以後自動 push 到 master 分支,則travis須要有對這個倉庫進行操做的權限,此時咱們就須要爲Travis CI 配置Access Token(訪問令牌)。
在GitHub上生成Access Token 的步驟是,點擊頭像進入設置(Settings),r而後點擊左邊菜單欄最下面的Developer settings
選項,進入後點擊左邊的 Personal access tokens
選項,進入後點擊右上角的Generate new token
按鈕
點擊後就會來到下面的界面,先給 Token 起一個名字,而後爲它設置一些權限,其中紅框內的權限是必須的,其餘能夠隨意添加。
點擊下面的 create token
按鈕,就會生成一個已經賦予好權限的 token 值,接下來咱們Travis CI 網站的配置中。
gulp
若是以前從未使用 Travis CI 來構建項目,則咱們先須要使用GitHub帳號來登陸網站,登陸進來後,會進到以下圖界面,若是底下 沒有把 GitHub 倉庫中的項目加載進來,能夠手動點擊右上角的 Sync account
按鈕,待到同步完成後將要自動構建的項目開啓。
開啓後點擊設置圖標就能夠進行一系列的設置,以下圖所示,先開啓 General
裏的兩項選項:hexo
Build only if .travis.yml is present
:只有在.travis.yml
文件中配置的分支改變了才構建Build branch updates
:當分支更新後開始構建而後在 Environment Variables
一欄裏將在 GitHub 下獲取的的 Access Token
值添加進來
框架
上面提到的 .travis.yml
配置文件須要添加到hexo 源碼的根目錄下,由於Travis CI 在自動構建時須要獲取這些配置信息,以此來完成構建任務;這些配置信息主要包括源碼分支,靜態文件推送分支,倉庫地址等信息。
其中主要內容以下:網站
language: node_js node_js: stable # S: Build Lifecycle install: - npm install #before_script: # - npm install -g gulp script: - hexo g after_script: - cd ./public - git init - git config user.name "dmego" --{GitHub帳戶名稱} - git config user.email "zengkai12138@outlook.com" --{Github帳戶郵箱} - git add . - git commit -m "Update docs" - git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:master # E: Build LifeCycle branches: only: - hexo --{Hexo源碼分支名稱} env: global: - GH_REF: github.com/dmego/dmego.github.io.git --{倉庫地址}
配置到這一步就已經把全部配置所有完成,下面就是驗證的過程ui
將某篇文章中的一個表格增長一行後將修改推送到hexo源碼所在的hexo
分支
,而後等Travis CI 構建並自動部署成功後。
點擊博文發現表格多了一行。
code
這樣作雖然能很好的實現自動部署的功能,可是有個問題也要注意,就是博客源碼公開問題,若是對博客源碼不介意的能夠直接使用公開倉庫,若是介意那就沒有辦法了,除非使用付費的私有倉庫,或者把項目放在Coding
上去,由於上有提供免費的私有倉庫。就我我的認爲,既然是本身的博客,原本就是要給人看的,博客源碼也談不上存在什麼隱私。