這裏持續集成基於GitHub搭建的博客爲項目node
工具:git
zqz@ubuntu:~$ node --version v4.2.6 zqz@ubuntu:~$ git --version git version 2.7.4 zqz@ubuntu:~$ travis --version 1.8.4
Travis CI 是目前新興的開源持續集成構建項目,它與jenkins,GO的很明顯的特別在於採用yaml格式,簡潔清新獨樹一幟。目前大多數的github項目都已經移入到Travis CI的構建隊列中,聽說Travis CI天天運行超過4000次完整構建。github
注意:開始安裝一大堆東西以前,你須要去Travis CI上註冊一個帳號。(通常都會使用github帳號)npm
Linux下的安裝(強烈建議不要使用windows來CI)ubuntu
生成ssh密鑰用於跟倉庫通訊windows
ssh-keygen -t rsa -C "youremail@example.com"
成功後,將.pub結尾的文件添加到github倉庫中
bash
最後將id_rsa文件複製到咱們項目的根目錄,這樣便於生成密鑰。hexo
cp /home/zqz/.ssh_ci/id_rsa /home/zqz/study/zhaoqize.github.io
安裝ssh
gem install travis
安裝成功後,登錄travis工具
travis login --auto
登錄成功:
Successfully logged in as zhaoqize!
接着,登錄網頁版,設置倉庫。
點擊倉庫名稱左邊的齒輪,設置開啓下面三個。
在加密以前咱們先在項目跟目錄下新建一個.travis.yml文件。
加密的就是第一步生成的密鑰id_rsa,因爲前面咱們將密鑰複製到了項目目錄,因此如今這裏有id_rsa文件。
//進入項目目錄 cd study/study/zhaoqize.github.io //進行加密 travis encrypt-file ssh_key --add
加密成功:
zqz@ubuntu:~/study/zhaoqize.github.io$ travis encrypt-file id_rsa --add Detected repository as zhaoqize/blog, is this correct? |yes| encrypting id_rsa for zhaoqize/blog storing result as id_rsa.enc storing secure env variables for decryption Make sure to add id_rsa.enc to the git repository. Make sure not to add id_rsa to the git repository. Commit all changes to your .travis.yml.
這時候看最後一句**Commit all changes to your .travis.yml.。
咱們新建的文件一句發生了變化,多了一句:(私人內容使用XXX代替)
- openssl aes-256-cbc -K $encrypted_XXXXXXXX_key -iv $encrypted_XXXXXXXX_iv -in id_rsa.enc -out ~/.ssh/id_rsa -d
再次查看咱們的travis ci網頁,發現多了一些變化
刪除咱們以前複製到根目錄的id_rsa文件
在項目根目錄下新建一個.travis的文件夾
將生成的.enc文件移動至.travis文件
在.travis下創建ssh_config文件。
並填寫以下信息:
Host github.com User git StrictHostKeyChecking no IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes
注意這裏的~/.ssh/id_rsa的路徑是根據我的設置而變化的。
最後須要着重配置.travis.yml文件,覺得travis ci就是按照這個文件來執行。
具體配置:
# 使用的語言 language: node_js # 使用的nodejs版本 node_js: - 4.4.4 # 倉庫的分支 branches: only: - master # 執行isntall前須要執行的命令 before_install: # 配置解密信息 - openssl aes-256-cbc -K $encrypted_4bba640059d8_key -iv $encrypted_4bba640059d8_iv -in .travis/id_rsa.enc -out ~/.ssh/id_rsa -d # 改變文件權限 - chmod 600 ~/.ssh/id_rsa # 配置 ssh - eval $(ssh-agent) - ssh-add ~/.ssh/id_rsa - cp .travis/ssh_config ~/.ssh/config # 配置git 的我的信息 - git config --global user.name 'zqz' - git config --global user.email zqz@zhaoqize.com # 執行install install: - npm install hexo-cli -g - npm install # 執行命令腳本 script: - hexo clean - hexo g -d
使用sudo權限操做
zqz@ubuntu:~$ gem install travis Fetching: ffi-1.9.14.gem (100%) ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /var/lib/gems/2.3.0 directory. zqz@ubuntu:~$ sudo gem install travis Building native extensions. This could take a while... ...
修改travis的目錄
zqz@ubuntu:~$ travis --version bash: /usr/bin/travis: 沒有那個文件或目錄 zqz@ubuntu:~$ sudo ln -s /usr/local/bin/travis /usr/bin/travis [sudo] zqz 的密碼: zqz@ubuntu:~$ travis --version 1.8.4 zqz@ubuntu:~$
有時候會失敗。這時候咱們須要在後面加上一些參數
travis encrypt-file ssh_key --add -r zhaoqize/blog