持續集成之道:在你的開源項目中使用Travis CI


自從接觸並踐行了敏捷的一些實踐之后,便深深的喜歡上了敏捷。尤其是測試自動化和持續集成這兩個實踐,可以顯著的提高軟件的質量和集成效率,實時檢測項目健康度,使團隊成員對項目保持充足的信心。

但是對於個人項目而言,雖然測試自動化好實現,但是要實現持續集成還是稍有難度。因為持續集成需要搭建一個集成服務器,並建立某種反饋機制。而大多數人來說並沒有自己的獨立服務器,並且配置也極為繁瑣。

不過不用怕,現在已經進入了雲時代。 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 CIprofile,選擇相應的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,所以無需在文件中顯式指定。

.travis.yml
1
2
3
4
5
language: java jdk:  - oraclejdk7  - openjdk7  - openjdk6 

你可以使用一個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狀態圖標。方法是在在該文件中加入 [![Build Status](https://travis-ci.org/[YOUR_GITHUB_USERNAME]/[YOUR_PROJECT_NAME].png)](https://travis-ci.org/[YOUR_GITHUB_USERNAME]/[YOUR_PROJECT_NAME])即可。

總體來說Travis CI是一個輕量級、可高度定制化的免費的持續集成服務。但我覺得還是有幾個缺點:

  1. 運行build需要大量的准備,耗時較長。

  2. 作為免費的服務,不支持build時間超過20分鍾的項目。

  3. 主站訪問速度略慢。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM