手把手教你使用Travis CI自動部署你的Hexo博客到Github上

簡介

這年頭要是沒有個博客都不好意思給別人說你是程序員景描,我用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)系方式在我的個人介紹里啦舞箍,感謝你的閱讀舰褪,謝謝

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市疏橄,隨后出現(xiàn)的幾起案子占拍,更是在濱河造成了極大的恐慌略就,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件晃酒,死亡現(xiàn)場離奇詭異表牢,居然都是意外死亡,警方通過查閱死者的電腦和手機贝次,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門崔兴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蛔翅,你說我怎么就攤上這事敲茄。” “怎么了搁宾?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長倔幼。 經(jīng)常有香客問我盖腿,道長,這世上最難降的妖魔是什么损同? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任翩腐,我火速辦了婚禮,結果婚禮上膏燃,老公的妹妹穿的比我還像新娘茂卦。我一直安慰自己,他們只是感情好组哩,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布等龙。 她就那樣靜靜地躺著,像睡著了一般伶贰。 火紅的嫁衣襯著肌膚如雪蛛砰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天黍衙,我揣著相機與錄音泥畅,去河邊找鬼。 笑死琅翻,一個胖子當著我的面吹牛位仁,可吹牛的內容都是我干的。 我是一名探鬼主播方椎,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼聂抢,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了棠众?” 一聲冷哼從身側響起涛浙,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后轿亮,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體疮薇,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年我注,在試婚紗的時候發(fā)現(xiàn)自己被綠了按咒。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡但骨,死狀恐怖励七,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情奔缠,我是刑警寧澤掠抬,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站校哎,受9級特大地震影響两波,放射性物質發(fā)生泄漏。R本人自食惡果不足惜闷哆,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一腰奋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧抱怔,春花似錦劣坊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至灌危,卻和暖如春锐想,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背乍狐。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工赠摇, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人浅蚪。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓藕帜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親惜傲。 傳聞我的和親對象是個殘疾皇子洽故,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內容