使用Travis-CI持續(xù)構(gòu)建Hexo博客
我是用的 Hexo+Github Page 來構(gòu)建自己的博客。在 Github 創(chuàng)建your_github_name.github.io
倉庫的時候席纽,可以直接使用your_github_name.github.io
作為你的博客域名站點捏悬。詳細的話,可以自己去 google 下使用 Hexo搭建個人博客润梯。
寫本文的原因是因為过牙,每次我在寫完一篇總結(jié),提交了push之后纺铭。如果要更新到博客上寇钉,需要經(jīng)歷的過程就是:
# 提交源文件到倉庫
git add .
git commit -m "xxx"
git push origin master
# 發(fā)布到博客站點
hexo clean
hexo d -g
# 這里還需要輸入github賬號,密碼舶赔。
我覺得如果提交源文件push之后能夠直接發(fā)布到博客站點就好了扫倡。在網(wǎng)上搜了一圈,很多人的資料還是有些缺陷竟纳,自己踩了一路坑撵溃,所以有了本篇記錄。
環(huán)境介紹
先介紹下我的博客環(huán)境锥累,我用了兩個repo:
一個是存博客源碼的blog.git
,
另一個也就是用來做站點發(fā)布的chenzhijun.github.com.git
缘挑。
網(wǎng)上很多人喜歡用一個庫,然后切換分支的做法桶略。之前我也弄過卖哎,不過后來發(fā)現(xiàn)我經(jīng)常弄錯分支。反正repo不要錢删性,就無所謂,分開吧焕窝。其實就是懶蹬挺。總之它掂,自己爽就好巴帮。
實際操作
其實就是將生成的目錄public下的所有文件當作了chenzhijun.github.com.git庫下面的文件溯泣。
- 生成一個Personal access tokens.Token記得勾選如下權(quán)限,然后copy保存:
- 注冊Travis-CI賬號:https://travis-ci.org榕茧。我是直接使用github登陸的垃沦,方便。
- 激活需要進行CI的倉庫:
點擊倉庫進去做配置用押,找到設(shè)置的地址:
配置環(huán)境變量等:
- 之后在博客根目錄創(chuàng)建
.travis.yml
文件肢簿,我的文件內(nèi)容為:
language: node_js # 設(shè)置語言
node_js: stable # 設(shè)置相應版本
cache:
apt: true
directories:
- node_modules # 設(shè)置緩存,傳說會在構(gòu)建的時候快一些
before_install:
- npm install hexo-cli -g
install:
- npm install # 安裝hexo及插件
script:
- hexo clean # 清除
- hexo g # 生成
after_script:
- git clone ${GH_REF} pub_web # 因為我有兩個倉庫蜻拨,先將發(fā)布服務的倉庫clone下來池充,
- cp -rf public/* pub_web/ # 將源博客倉庫(blog.git)目錄下的public文件夾下的文件復制到發(fā)布服務的倉庫(chenzhijun.github.com.git)中
- cd pub_web # 進入到git倉庫
- git config user.name "username"
- git config user.email "email@address.com"
- git add .
- git commit -am "Travis CI Auto Builder :$(date '+%Y-%m-%d %H:%M:%S' -d '+8 hour')" # 零時區(qū),+8小時
- git push origin master
branches:
only:
- master #只監(jiān)測master分支,這是我自己的博客缎讼,所以就用的master分支了收夸。
env:
global:
- GH_REF: https://yourname:${GITHUB_TOKEN}@github.com/yourname/your.blog.address.git #設(shè)置GH_REF,注意更改yourname,GITHUB_TOKEN:就是我們在travis-ci倉庫中配置的環(huán)境變量
- 在
_config.yml
中加入(這里如果是用hexo血崭,應該一開始就會弄好了):
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repository: https://github.com/yourname/yourname.github.com.git
branch: master
到這里卧惜,我們一個簡單的ci就弄好了,你可以試著提交一個commit,然后push到你的倉庫之后在travis-ci里面就能看到build日志了夹纫。
其實簡單的原理就是:
- 向倉庫
blog.git
提交commit咽瓷; - travis-ci 自動構(gòu)建
blog.git
,根據(jù).travis.yml
的配置執(zhí)行; - 運行
hexo g
之后捷凄,public
目錄下文件更新忱详; - 克隆
chenzhijun.github.com.git
倉庫,將其命名為別名pub_web
跺涤,將public下的文件復制到pub_web
匈睁; - 將pub_web目錄下的文件提交commit;
- push最新的文件到github桶错。
特別注意 personal token只在倉庫的https協(xié)議下有效航唆,官網(wǎng)說的:Creating a personal access token for the command line
這樣站點就更新了,如果你是在一個倉庫下多個分支院刁,我想應該也容易了糯钙。自己動手,豐衣足食退腥。
相關(guān)參考:
基于 Hexo 的全自動博客構(gòu)建部署系統(tǒng)