TarvisCI 全流程使用實踐(一)
最近開始著迷於github的持續集成。
以前一直把github當成一個 SVN在使用,版本控制和版本管理。後來,發現有些github上有好玩的徽章,於是自己也想弄一個,沒想到一下子就不可自拔,github的徽章(Badges)簡直就像一個新世界的大門。而打開這個大門的鑰匙,就是TarvisCI 。
最近一個月一直在折騰這個東西,樂此不疲,因為真的太強大了。
今天終於利用tarvisCI,打通了,從編譯,到代碼靜態檢查,到程序測試,到測試報告回寫github的全流程。中間也遇到了不少坑。在這裡記錄一下。
首先先說,編譯。
tarvisCI實際提供的是一個暫時的Linux虛擬機(收費版可以有更多的OS選擇),你可以把你的代碼放在上面去編譯執行。當遇到錯誤的時候,tarvisCI會終止操作,並返回給你一個錯誤信息。它可以和你的github提交綁定。
首先,你需要登錄tarvisCI的網站。(Test and Deploy Your Code with Confidence)
然後,你需要用你的github賬號登錄。
登錄成功後,你可以看到你的所有的github工程。
找到你想自動化測試的工程,選擇setting
一般,默認的打開和github綁定的選項。一般保持如下兩個選項卡打開就行了。
這樣,當你每次自動提交的代碼的時候,TarvisCI都會幫你自動化編譯。當然,這個是依賴腳本的,這個腳本的名稱,一般是.travis.yml,也可以是別的名稱。但是一定要以.yml後綴為結尾。請注意,這個文件一定要放在github項目的根目錄才行。
好了,上述配置完畢。
下面,就講講腳本怎麼寫吧。一個腳本的範例
sudo: requireddist: trustylanguage: cppos: - linuxcompiler: - gccbranches: only: - masterenv: global: - GH_REF: github.com/freeeyes/PSS.git - secure: "XXXXXXXX"before_install:before_script: - make -j 4 after_script: - echo $(pwd)
這是一個標準的腳本。
compiler:
只的是編譯器,因為我的項目是C的,所以用gcc, 如果是java 這裡可以指定java的編譯器。branches:
分支,這裡你可以指定你的編譯分支,不一定是master,可以是devloper。env:
這裡設置你的全局環境變數。
這裡要特彆強調一個非常有用的東西。GH_TOKEN。公鑰和私鑰。
因為有時候,我們需要對某些數據連接進行驗證,這裡就牽扯到了用戶名和密碼。比如,我的tarvisCI回調我的github介面寫點東西,這時候,我們不可能吧github密碼寫在腳本里,這樣豈不是非常容易被別人盜走?
實際上,tarvisCI已經為你想到了這一點,你可以在tarvisCI的setting界面下,把你的隱私數據設置在這裡面,這裡可以包括密碼,用戶名等敏感信息。這些信息,在腳本里,是以全局變數名的形式提供調用,非常的安全。
比如
curl -x -$(GH_TOKEN)
before_install:
在這裡執行你的項目需要在便以前需要的第三方庫。或者安裝前的準備工作,這裡的語法和bash語法完全兼容。
before_script:
在這裡執行你的工程編譯after_script:
在這裡,可以添加你的工程編譯後的收尾工作,比如make test之類。寫完這個腳本,就可以提交了。
當你提交後,馬上就會在tarvisCI下獲得執行。
點擊箭頭的部分,就可以看到結果。
而紅框的部分,就是編譯日誌。在這裡你可以看到所有的tarvisCI腳本的執行情況。以及當出現了異常,異常位置和語句是什麼。
推薦閱讀: