Travis CI是目前新興的開源持續集成構建項目,採用yaml
格式,簡潔清新獨樹一幟。目前大多數的github項目都已經移入到Travis CI的構建隊列中。Travis-CI會同步你在GitHub上託管的項目,每當你commit
push
成功以後,就能夠根據配置文件進行項目的構建發佈。做爲一名苦逼(qiongsuan)程序員,想本身搞點什麼,又苦於如今什麼都收費,因而乎,有了本篇文章,知足了廣大和我同樣,囊中羞澀卻又按耐不住一顆躁動的心的開發者們node
以前用hexo搭建了一個博客,掛載在本身的github上,之因此選擇這二者,由於他們都是開源的(其實爲了免費),也所以,github域名沒法在百度等搜索引擎備案,個人博客張吉成的博客主頁也是毫無訪問量可言T_T。
以前每次部署都是最基本的手動編譯,打包,上傳github,搞過一段時間的jenkins(有興趣的朋友能夠移步個人博客),因爲沒有本身的服務器,每次本身的電腦都要開着做爲服務器,實在麻煩。後來無心間發現了Travis,功能強大且配置簡單,仍是免費的,簡直完美,惟一的缺點是隻支持github項目。git
本文記錄了配置Travis的全過程,構建步驟爲:程序員
- 本地開發完成,提交代碼到github倉庫;
- github收到提交的更新,通知Travis;
- Travis 收到github的提交通知,進行構建;
hexo 的安裝使用本文就不作介紹了,能夠參考以前的文章hexo經常使用命令,hexo建立文章&文章縮略圖及banner&MarkDowngithub
當咱們提交代碼後執行的一系列操做都是在 .travis.yml文件中配置的;npm
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 綁定郵箱地址
此步驟是爲了使travis得到對github的操做權限,如
git push
等
打開Travis CI 找到setting頁面,填寫對應的token名及上面步驟生成的token值,以下圖:bash
細心的同窗可能會發現個人 .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
命令就能夠在不用輸入用戶名密碼的狀況下進行提交。hexo
提交代碼到github中測試
查看部署狀況
至此,整個部署完成,趕快本身嘗試一下吧!