簡介
這年頭要是沒有個博客都不好意思給別人說你是程序員景描,我用XX筆記呀囱桨,不行嗎仓犬?不行,這玩意兒要么不能公開分享舍肠,要么公開分享要會員搀继,現(xiàn)在到處都是開源窘面,自己學到了東西都不能分享給需要幫助的人,真是傷心呀叽躯。那么今天就來聊聊當你用Hexo搭建了博客财边,怎么自動更新呢,大家都知道Hexo是需要手動生成HTML靜態(tài)網(wǎng)頁的点骑,雖然命令很少酣难,但是每次寫完博客先得推送到git然后在生成靜態(tài)文件,再推送到服務器黑滴,想想我這個心也是醉了憨募,不過看到知乎上還有人帶著U盤,我只能呵呵了袁辈,你們耐心真好
那我們今天就來說說怎么使用Travis CI來自動構建你的博客
什么是Travis CI
Travis CI 是目前新興的開源持續(xù)集成構建項目馋嗜,它與jenkins,GO的很明顯的特別在于采用yaml格式吵瞻,同時他是在在線的服務葛菇,不像jenkins需要你本地打架服務器,簡潔清新獨樹一幟橡羞。目前大多數(shù)的github項目都已經(jīng)移入到Travis CI的構建隊列中眯停,據(jù)說Travis CI每天運行超過4000次完整構建。對于做開源項目或者github的使用者卿泽,如果你的項目還沒有加入Travis CI構建隊列莺债,那么我真的想對你說out了。
我的博客架構
也算是一個框架吧
首先我的博客是使用Hexo來搭建的签夭,托管到Github提供的Gitpage服務上的
每次寫完博客git push到github齐邦,然后Travis自動構建,構建完成后自動推送到Gitpage服務上
生成后的HTML文件和博客的源文件我是放到一個倉庫的第租,只是使用了不同的分支
master:博客的靜態(tài)文件措拇,也就是hexo生成后的HTML文件,因為要使用Gitpage服務慎宾,所以他規(guī)定的網(wǎng)頁文件必須是在master分支
blog-source:是博客的源代碼
當然這樣做有隱私問題丐吓,因為任何人都能哪的你的博客源碼,當然既然是博客趟据,所以就沒有這些問題了
啟用要構建的項目
首先如果你要使用Travis CI券犁,你必須要GIthub賬號(好像Travis CI只支持構建github的項目)和一個項目
使用Github賬號登錄Travis CI官網(wǎng),如下圖
登錄完后會進入如下界面
當然如果你以前沒用使用過汹碱,所以你登錄完是沒有上圖紅框內的內容的粘衬,這里是因為我在寫這篇博客前已經(jīng)使用了,所以會有這些內容
接下來我們點擊My Repositories旁邊的+,意思是添加一個要自動構建的倉庫稚新,如下圖:
點擊后就會來到如下界面:
可以看到這個界面會顯示當前github賬號的所以項目泼舱,如果沒有顯示,點擊右上角的“Sync account”按鈕枷莉,就可以同步過來了(ps:上次用windows電腦始終同步不過來項目,最后換成mac可以同步了尺迂,最后又換回windows也可以了笤妙,汗(⊙﹏⊙)b,不太懂噪裕,什么個情況)
居然倉庫都同步過來了蹲盘,那么下一步肯定是要開啟你需要構建的倉庫,可以看到我開啟了lifengsofts.github.io這個項目膳音,當然這個也是我就是我的博客啦
開啟后我們還需要進行一些配置召衔,操作如下
點擊紅框的那個菜單按鈕,就會出現(xiàn)這樣的下拉菜單祭陷,我們選擇設置苍凛,來到這個界面,我們按照如下勾選
Build only if .travis.yml is present:是只有在.travis.yml文件中配置的分支改變了才構建
Build pushes:當推送完這個分支后開始構建
到這一步兵志, 我們已經(jīng)開啟了要構建的倉庫醇蝴,但是還有個問題就是,構建完后想罕,我們怎么將生成的文件推送到github上呢悠栓,如果不能推送那我們就不需要倒騰一番來使用Travis CI服務了,我們要的結果就是按价,我們只要想github一push惭适,他就自動構建并push靜態(tài)文件到gitpages呢,那么下面要解決的就是Travis CI怎么訪問github了
在Travis CI配置Github的Access Token
標題已經(jīng)說得很明白了吧楼镐,我們需要在Travis上配置Access Token癞志,這樣我們就可以在他構建完后自動push到gitpgaes了,到這里肯定有人要問了框产,咋你把用戶名密碼直接寫文件里呢今阳,如果你真有這樣的問題,那我只能說呵呵~茅信,但我要告訴你的是寫里面肯定是可以push成功的
在github上生成Access Token
首先我們來到github的設置界面盾舌,點擊到Personal access tokens頁面,點擊右上角的Generate new token按鈕會重新生成一個蘸鲸,點擊后他會叫你輸入密碼妖谴,然后來到如下界面,給他去一個名字,下面是勾選一些權限
生成完后膝舅,你需要拷貝下來嗡载,只有這時候他才顯示,下載進來為了安全他就不會顯示了仍稀,如果忘了只能重新生成一個了洼滚,拷貝完以后我們需要到Travis CI網(wǎng)站配置下
在Travis CI配置
配置界面還是在項目的setting里面,如下圖
至于為什么我們要在這里配置技潘,我想大家肯定應該明白了遥巴,寫在程序里不安全,配置到這里相當于一個環(huán)境變量享幽,我們在構建的時候就可以引用他铲掐。
到這里我已經(jīng)配置了要構建的倉庫和要訪問的Token,但是問題來了值桩,他知道怎么構建摆霉,怎么生成靜態(tài)文件嗎,怎么push的gitpages奔坟,又push到那個倉庫嗎携栋,所以這里我們還需要在源代碼的倉庫里創(chuàng)建一個.travis.yml配置文件,放到源代碼的根目錄咳秉,如下圖
其中內容如下:
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 "lifengsofts"
- git config user.email "lifengsofts@gmail.com"
- git add .
- git commit -m "Update docs"
- git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:master
# E: Build LifeCycle
branches:
only:
- blog-source
env:
global:
- GH_REF: github.com/lifengsofts/lifengsofts.github.io.git
其中給你需要更換的又git config后面的配置信息
GH_REF的值更改為你的倉庫地址
到這一步我們配置已經(jīng)完成了刻两,現(xiàn)在就是見證奇跡的時候了
Push文章到Github
到這一步,我們可以寫一篇文章滴某,添加到你的博客的_posts目錄下磅摹,如圖:
然后commit并push到你的Github上
git push origin blog-source:blog-source
如果不出意外,我們可以就可以在Travis CI網(wǎng)站看到他已經(jīng)在構建了霎奢,如下圖:
構建完成后户誓,我們去博客可以看見這個文章了
是不是逼格十足呢
如果我的文章對來帶來的幫助,可加我微信幕侠,微博帝美,QQ什么啥的交個朋友也是不錯的,另外微信晤硕,微博都會不定期發(fā)一些優(yōu)質的文章悼潭,感謝大家的支持~,聯(lián)系方式在我的個人介紹里啦舞箍,感謝你的閱讀舰褪,謝謝