自從接觸並踐行了敏捷的一些實踐之后,便深深的喜歡上了敏捷。尤其是測試自動化和持續集成這兩個實踐,可以顯著的提高軟件的質量和集成效率,實時檢測項目健康度,使團隊成員對項目保持充足的信心。
但是對於個人項目而言,雖然測試自動化好實現,但是要實現持續集成還是稍有難度。因為持續集成需要搭建一個集成服務器,並建立某種反饋機制。而大多數人來說並沒有自己的獨立服務器,並且配置也極為繁瑣。
不過不用怕,現在已經進入了雲時代。 Travis CI為我們提供了免費的集成服務器,讓我們省卻了自己搭建集成服務器的煩惱。
Travis CI的官網介紹是: A hosted continuous integration service for the open source community. 表明它主要是給開源社區提供持續集成服務。其與github這個全球最火爆的代碼托管網站高度集成,可以很方便的為github中的項目建立持續集成服務。
它不僅支持多種語言,而且支持同時在多個運行環境中運行build,能全方位的測試你的程序。
下面就介紹下如何將Travis CI與自己在github上的某個repository集成。(這里以我自己的repository https://github.com/huangbowen521/SpringMessageSpike 為例。 )
首先,使Travis CI通過github OAuth認證。
點擊https://travis-ci.org/右上角的Sign in with GitHub
按鈕,輸入自己的github賬號和密碼,並允許Travis CI的認證。
然后,激活GitHub Service Hook。
GitHub給用戶提供了一個Service Hook接口,只要用戶對host在github上的repository作用了一些action(比如push,pull),就會觸發相應的Service Hook。而Travis CI正是基於這個原理來trigger你的build。當你發起一個push操作時,就會trigger Travis CI的服務。
設置方法是訪問Travis CI的profile,選擇相應的repository打開Service Hook開關。
然后登陸你的github,訪問具體的repository的Service Hook頁面,確保設置了Travis CI Hook的github name和travis token。
最后,給repository配置.travis.yml文件。該文件需要放置在repository的跟目錄下。
.travis.yml文件是一個相當重要的文件,里面需要配置你所使用的語言、運行環境、構建工具、構建腳本、通知方式等。最重要的是設置語言,其它的都有相應的默認值。
這是為我的SpringMessageSpike設置的.travis.yml文件。由於我的項目中使用了maven作為構建工具,而Travis CI對java語言設置的默認構建工具就是maven,所以無需在文件中顯式指定。
1 2 3 4 5 |
|
你可以使用一個travis-lint來檢查你的yml文件是否是有效的。他是ruby寫的一個gem,需要ruby的運行環境。安裝方式是在terminal下gem install travis-lint
。你只需要在你的repository根目錄下運行travis-lint
即可進行檢查。
想要更進一步的關於.travis.yml的配置請參見:http://about.travis-ci.org/docs/user/build-configuration/
只要這三步就完成了配置。現在發起一個push就可以trigger你在Travis CI的build。 這時候登陸Travis CI可以看到你的Build的狀態和日志。
你可以在respository的README.md文件中加入build狀態圖標。方法是在在該文件中加入 [](https://travis-ci.org/[YOUR_GITHUB_USERNAME]/[YOUR_PROJECT_NAME])
即可。
總體來說Travis CI是一個輕量級、可高度定制化的免費的持續集成服務。但我覺得還是有幾個缺點:
運行build需要大量的准備,耗時較長。
作為免費的服務,不支持build時間超過20分鍾的項目。
主站訪問速度略慢。