Travis CI是目前新興的開源持續集成構建項目,採用yaml
格式,簡潔清新獨樹一幟。目前大多數的github項目都已經移入到Travis CI的構建隊列中。Travis-CI會同步你在GitHub上託管的項目,每當你commit
push
成功之後,就可以根據配置文件進行項目的構建發佈。作爲一名苦逼(qiongsuan)程序員,想自己搞點什麼,又苦於現在什麼都收費,於是乎,有了本篇文章,滿足了廣大和我一樣,囊中羞澀卻又按耐不住一顆躁動的心的開發者們
之前用hexo搭建了一個博客,掛載在自己的github上,之所以選擇這兩者,因爲他們都是開源的(其實爲了免費),也因此,github域名無法在百度等搜索引擎備案,我的博客張吉成的博客主頁也是毫無訪問量可言T_T。
之前每次部署都是最基本的手動編譯,打包,上傳github,搞過一段時間的jenkins(有興趣的朋友可以移步我的博客),由於沒有自己的服務器,每次自己的電腦都要開着作爲服務器,實在麻煩。後來無意間發現了Travis,功能強大且配置簡單,還是免費的,簡直完美,唯一的缺點是隻支持github項目。
本文記錄了配置Travis的全過程,構建步驟爲:
- 本地開發完成,提交代碼到github倉庫;
- github收到提交的更新,通知Travis;
- Travis 收到github的提交通知,進行構建;
hexo 的安裝使用本文就不做介紹了,可以參考之前的文章hexo常用命令,hexo創建文章&文章縮略圖及banner&MarkDown
註冊配置 Travis
- 打開Travis CI官網,進行註冊,這裏就不做太多贅述,推薦用github賬戶註冊;
- 綁定你的github賬戶,此時Travis會同步你的github倉庫,將你要監聽的github倉庫名選中,此時Travis會監聽該倉庫的push操作,並執行指定的腳本文件;
添加 .travis.yml
當我們提交代碼後執行的一系列操作都是在 .travis.yml文件中配置的;
language: node_js #設置語言
node_js: stable #設置相應的版本
cache:
apt: true
directories:
- node_modules # 緩存不經常更改的內容
install:
# 執行安裝操作
...
script:
# 開始部署
...
after_script:
# 部署後操作
...
branches:
# 配置監聽的分支
only:
- master #只監測master分支,master是我的博客源碼分支的名稱,可根據自己情況設置
env:
# 環境變量配置
global:
- GH_REF: github.com/***/blog.git #設置GH_REF,注意更改***
更詳細的參數配置可以參考官網
如下是我的配置信息:
language: node_js #設置語言
node_js: stable #設置相應的版本
cache:
apt: true
directories:
- node_modules # 緩存不經常更改的內容
before_install:
- echo 安裝hexo相關環境...
install:
# - npm install -g cnpm --registry=https://registry.npm.taobao.org
- cnpm install
before_script:
- echo 正在清空緩存靜態文件...
- hexo clean # 清除緩存靜態文件
- echo 正在生成靜態文件...
- hexo g # 生成靜態文件
- cd ./public
- ls -l
script:
- echo 開始部署...
- git init
- git config --global user.name "${GH_username}" # 修改name
- git config --global user.email "${GH_useremail}" # 修改email
- git add ./
- git commit -m "update"
- git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:master # GH_TOKEN是在Travis中配置token的名稱
after_script:
- echo 部署完成!
branches:
only:
- master # 只監測master分支,master是我的博客源碼分支的名稱,可根據自己情況設置
env:
global:
- GH_REF: github.com/<prourl> # 設置 github 項目倉庫地址
- GH_username: <yourname> # 設置 github 用戶名
- GH_useremail: <youremail> # 設置 github 綁定郵箱地址
生成github access Token 並 配置到 Travis
此步驟是爲了使travis獲得對github的操作權限,如git push
等
生成github access Token
- 如上圖所示,登陸github並打開該頁面,並新建token
- 如上圖進行對應操作,生成token,注意token只顯示一次,要保存好備用。
配置 access token 到 Travis
打開Travis CI 找到setting頁面,填寫對應的token名及上面步驟生成的token值,如下圖:
細心的同學可能會發現我的 .travis.yml 文件中有下面這樣一段配置
after_script:
- echo 開始部署...
- cd ./public
- git init
- git config --global user.name "yourname" #修改name
- git config --global user.email "youremail" #修改email
- git add ./
- git commit -m "update"
- git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:master #GH_TOKEN是在Travis中配置token的名稱
- echo 部署完成!
branches:
only:
- master #只監測master分支,master是我的博客源碼分支的名稱,可根據自己情況設置
env:
global:
- GH_REF: github.com/yourname/bolg.git #設置GH_REF,注意更改yourname
其中有兩個變量,GH_REF是在env中配置的,而GH_TOKEN則是我們剛剛在設置中添加的github token,此時執行git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:master
命令就可以在不用輸入用戶名密碼的情況下進行提交。
測試
提交代碼到github中
查看部署情況
至此,整個部署完成,趕快自己嘗試一下吧!