Travis-CI
what
Travis CI 是目前新興的開源持續內建建構項目(Continuous Integration,簡稱 CI),它與jenkins,GO的很明顯的特别在于采用yaml格式,簡潔清新獨樹一幟。目前大多數的github項目都已經移入到Travis CI的建構隊列中,據說Travis CI每天運作超過4000次完整建構。
why
團隊協作開發中,建構、測試與部署往往會産生沖突,花費不必要的精力去解決這些問題。CI通過綁定 Github 上面的項目,隻要有新的代碼,就會自動抓取。然後,提供一個運作環境,執行測試,完成建構,還能部署到伺服器。每次代碼的小幅變更,就能看到運作結果,進而不斷累積小的變更,而不是在開發周期結束時,一下子合并一大塊代碼。
who
Travis-CI僅支援GitHub的項目,對開源項目是免費,對私有項目是收費的
how
在Github上,可以添加Travis CI,當有code push時候,會推送通知到Travis,根據設定的腳本運作指定任務。
接下來以開源項目Spectrum為例,來一步步示範如何使用Travis-CI
Spectrum持續內建項目打包
step1
當然得先fork一下我們的主角啦Spectrum
step2
通路Travis-CI 官網,點選頁面右上角的“Sign in with GitHub ”,輸入github密碼進行登入。然後會在首頁的右側看到自己的github倉庫清單。如圖:(我這麼搜尋隻為了展示Spectrum)
step3
點選上圖中Spectrum倉庫右側對應的開關。打開開關,Travis 會監聽這個倉庫的所有變化
step4
在github首頁,點選自己頭像下的setting,選擇左側欄目最下面一項“Developer settings”,再點選左側欄的“Personal access tokens”,然後點選頁面右上角的“Generate new token”。1.填寫Token description 2.選擇repo打鈎即可,如圖
然後點選頁面下方的 “Generate token”,頁面會出現生成的token.隻一次可見,一定要第一次儲存下來。
step5
安裝travis用戶端。MAC端執行指令 gem install travis
然後執行指令 travis -v 驗證安裝成功。如圖
然後執行指令 travis login。輸入github的使用者名和密碼進行登入。如圖
登入成功後,mac端執行指令
travis encrypt -r / GH_Token=<step4 中得到的token值>。執行完如圖
得到加密後的secure值,進行儲存(配置檔案.travis.yml會用到)。
step6
回到Travis-CI,點選右側的 More options下拉菜單的Settings,如圖
找到環境變量 Environment Variables,name自定義設定,value為step4中的token值,然後點選Add按鈕。如圖
step7
接下來是重頭戲.travis.yml檔案,點選官方文檔查詢可查詢更多.travis.yml配置标簽(自我探索:可以取文檔中查閱step5中生成secure值如何配置)
language: go
go:
- 1.10.x
after_script:
- git clone https://${GH_REF} .deploy_git # GH_REF是最下面配置的倉庫位址
- cd .deploy_git
- git checkout master
- cd ../
- mv .deploy_git/.git/ ./public/ # 這一步之前的操作是為了保留master分支的送出記錄,不然每次git init的話隻有1條commit
- cd ./public
- git config user.name "wangbaojin" #修改name
- git config user.email "[email protected]" #修改email
- git add .
- git commit -m "Travis CI Auto Builder at `date +"%Y-%m-%d %H:%M"`" # 送出記錄包含時間
- git push --force --quiet "https://${Travis_Token}@${GH_REF}" master:master #Travis_Token是在Travis中配置環境變量的名稱
branches:
only:
- master #隻監測master分支,master是我的分支的名稱,可根據自己情況設定
env:
global:
- GH_REF: github.com/wangbaojin/Spectrum.git
- Travis_Token:for-Spectrum
notifications:
email:
- [email protected]
on_success: change
on_failure: always
将以上.travis.yml檔案儲存在/ 根目錄下
step8
現在可以測試流程了
在本地代碼中,加任意測試代碼,然後執行
git add .
git commit -m ‘測試travis CI’
git push 如圖
然後回到Travis-CI,如圖,pass成功。
內建編譯的網址:https://travis-ci.org/wangbaojin/Spectrum
擷取更多資料,請參考文檔:https://docs.travis-ci.com/user/languages/go/