Travis CI使用經驗

Travis CI是什麼?

準備一下:

  • 一個Hexo源碼倉庫(放在名爲"HexoCode"的分支),就像這樣:

  • 獲取到你的GitHub_Token
點這裏: https://github.com/settings/tokens

權限保持默認就行,token必定要保存好,等會要在Travis CI裏用,它只會顯示一次。
node

  • 進入Travis CI,打開權限
點這裏: https://travis-ci.org/

進入設置(Settings),打開你要自動編譯的公開倉庫。git

而後點擊按鈕旁邊的Settings,找到環境變量(Environment Variables)github

左側隨便填個名字。若是你怕出錯啥的就跟我同樣填Travis,右側的密碼同樣的東西填剛剛咱們獲取到的GitHub_Tokennpm

個人是:1a5xxxx0cb0b3xxxxxx631f03c7xxxx73020fb6dgulp

這個很重要的!hexo

好,下面咱們就要給Travis留言,告訴他要怎麼樣編譯這些東西。

  • 咱們要建立一個名爲 .travis.yml 的文件,用記事本打開就能夠。
language: node_js
node_js: stable

cache:
  directories:
    - node_modules

branches:
  only:
    - hexo

before_install:
  - npm install -g hexo-cli
  

# S: Build Lifecycle
install:
  - npm install
  - npm install hexo-deployer-git --save


# before_script:
 # - npm install -g gulp
    
script:
  - hexo clean
  - hexo generate

after_script:
#  - cd ./public
#  - git init
  - git config user.name "gattia"
  - git config user.email "gattia.su@gmail.com"
#  - git add .
#  - git commit -m "Update docs"
#  - git push --force --quiet "${Travis}@${GH_REF}" master:master
  - sed -i "s/Travis/${Travis}/g" ./_config.yml
  - hexo deploy

有沒有感受Travis CI就像是一臺遠程計算機?ui

.travis.yml _config.yml 放在一塊兒。spa

還要修改下_config.yml文件的deploy節點:.net

# 修改前
deploy:
  - type: git
    repo: git@github.com:SylvesterLi/HiTravi.git
    branch: master
# 修改後
deploy:
- type: git
  # 下方的gh_token會被.travis.yml中sed命令替換
  repo: https://Travis@github.com/SylvesterLi/HiTravi.git
  branch: master

若是有其餘問題,能夠參考一下個人GitHub中HiTravi倉庫,這個倉庫Travis CI運行正常.3d

最後來我說一下我遇到的幾個問題。

一開始我也不知道怎麼配置Travis CI,參考了好多文章,各有各的寫法,可是我老是不成功。後來按照其中一個完完整整的作完就成功了。

能夠參考這篇: http://www.javashuo.com/article/p-urxtexke-cd.html

這篇講的仍是比較清楚的,就是sed那個地方我一開始沒看懂。

出於我的習慣,我不肯意把編譯出來的文件放在master分支。我想把博客源代碼放在master,編譯文件放在gh-pages分支。因此在

branches:
  only:
    - hexo

另外一篇博客中

#  - git add .
#  - git commit -m "Update docs"
#  - git push --force --quiet "${Travis}@${GH_REF}" master:master

混亂了半天。

後來作完才明白,想監視哪一個分支就設置only:這裏的,想推送到哪,就去設置_config.yml中的deploy:branch。

說到這裏得提一下昨天查錯的過程。

第一次提交上去的時候我覺得成功了:

結果去GitHub一查,倉庫沒變化,翻到下面看到:

覺得是網址錯了仍是分支名錯了,仍是沒權限訪問:

直到我發現,倉庫名錯了哈哈哈哈,而後改了仍是訪問不到:

索性就改了sed命令那個教程:

以前個人Repo名字叫HiTravis,當sed命令去替換_config.yml文件裏的Travis時順手就把我倉庫的名字給替換掉了。因此我趕忙改了個倉庫名。

大功告成!!

前先後後,構建了十三次,Travis不容易,熬夜不值得。

相關文章
相關標籤/搜索