Travis CI是一個持續集成的託管服務。目前已經集成Github,並支持如下類型的項目:javascript
Travis CI構建環境爲不一樣的語言提供多種不一樣的運行時,如多版本的Ruby,PHP,Node.js。同時,它還提供多種數據庫和經常使用工具,如消息中間件。php
你能夠很輕鬆在一種或多種語言甚至多種數據庫環境下測試你的項目。java
首先使用你的Github賬戶登陸Travis CI。訪問Travis CI並點擊頁面頂部的Sign In
鏈接。node
注意,在http://travis-ci.org,你只能看到你的公開倉庫,而在http://travis-ci.com,你能夠看你的私有倉庫。python
登陸的時候,GitHub會詢問是否容許咱們訪問你的GitHub權限。在這裏有更詳細的關於Github權限的描述。git
登陸後,咱們將會從GitHub同步你的倉庫,包括你的開源項目或私有項目。github
你能夠看到你全部的可訪問的機構,倉庫。只要你是倉庫的管理員,你均可以開啓服務鉤子(service hook)。web
接着,開啓它們。https://travis-ci.org/profileobjective-c
譯註:開啓路徑:https://travis-ci.org/profile
爲了讓Travis CI構建你的項目,你必須告訴它一些必須的信息。你須要在倉庫的根目錄添加名爲.travis.yml
的文件。數據庫
在本次指南中,咱們只涉及基本的.travis.yml選項。其中最重要的就是language
了。它用於告訴Travis CI你的項目使用哪一種語言環境。
Ruby項目比起Clojure或PHP項目須要用到更多的不一樣構建工具和實踐,因此Travis CI須要知道如何去構建。
若是.travis.yml
文件不存在倉庫中、拼寫錯誤、不是一個有效的YAML文件,Travis CI會忽略它,同時假設它是使用Ruby語言,全部其它選項也都將使用默認值。
language
的值是區別大小寫的,若是你這樣:language: C
,你的Ruby項目同樣會被當成Ruby項目。
如下是一些基本的.travis.yml
例子:
language: c compiler: - gcc - clang # Change this to your needs script: ./configure && make
更多C語言的.travis.yml選項
language: cpp compiler: - gcc - clang # Change this to your needs script: ./configure && make
更多C++語言的.travis.yml選項
使用Leiningen 1的:
language: clojure jdk: - oraclejdk7 - openjdk7 - openjdk6
使用Leiningen 2的:
language: clojure lein: lein2 jdk: - openjdk7 - openjdk6
更多clojure語言的.travis.yml選項
language: erlang otp_release: - R15B02 - R15B01 - R14B04 - R14B03
更多Erlang語言的.travis.yml選項
language: haskell
更多Haskell語言的.travis.yml選項
language: go
更多Go語言的.travis.yml選項
language: groovy jdk: - oraclejdk7 - openjdk7 - openjdk6
更多Groovy 語言的.travis.yml選項
language: java jdk: - oraclejdk7 - openjdk7 - openjdk6
更多Java語言的.travis.yml選項
language: node_js node_js: - "0.10" - "0.8" - "0.6"
更多Node.js語言的.travis.yml選項
language: objective-c
更多Objective-C語言的.travis.yml選項
language: perl perl: - "5.16" - "5.14" - "5.12"
更多Perl語言的.travis.yml選項
language: php php: - "5.5" - "5.4" - "5.3"
更多PHP語言的.travis.yml選項
language: python python: - "3.3" - "2.7" - "2.6" # command to install dependencies, e.g. pip install -r requirements.txt --use-mirrors install: PLEASE CHANGE ME # command to run tests, e.g. python setup.py test script: PLEASE CHANGE ME
更多Python語言的.travis.yml選項
language: ruby rvm: - "1.8.7" - "1.9.2" - "1.9.3" - jruby-18mode # JRuby in 1.8 mode - jruby-19mode # JRuby in 1.9 mode - rbx # uncomment this line if your project needs to run something other than `rake`: # script: bundle exec rspec spec
更多Ruby語言的.travis.yml選項
language: scala scala: - "2.9.2" - "2.8.2" jdk: - oraclejdk7 - openjdk7 - openjdk6
更多Scala語言的.travis.yml選項
建議你使用travis-lint(命令行工具)或者.travis.yml validation Web app去校驗你的.travis.yml
文件。
travis-lint
須要你已經安裝Ruby 1.8.7+和RubyGems。經過如下命令安裝:
gem install travis-lint
校驗.travis.yml
:
# inside a repository with .travis.yml travis-lint # from any directory travis-lint [path to your .travis.yml]
travis-lint
會檢查如下內容:
language
等等,travis-lint
是你的好朋友。
只要GitHub的鉤子已經安裝,你向GitHub Push你的commit,.travis.yml
已經加入到你的倉庫,Travis CI就會添加一個構建到構建隊列中。有針對你項目語言的空閒工做線程時就會執行。
能夠經過commit和push來啓動構建,或者在GitHub Web鉤子(WebHook)及服務頁使用"Test Hook"按鈕。請注意,你沒法使用Test Hook按鈕來觸發第一次構建,第一次只能經過push觸發。
你的項目須要一些自定義的構建過程。也許你在運行測試前須要建立數據庫或你的構建工具不一樣於Travis CI提供的。不用擔憂,Travis CI容許你覆蓋全部的選項。
當修改.travis.yml
後,請確保它是一個有效的YAML文件,同時使用travis-lint
來校驗它。
Travis CI的工做進程提供的服務的相關信息,你也許會用到。信息包括有MySQL, PostgreSQL,MongoDB,Redis,CouchDB,RabbitMQ,memcached等等。
經過學習Database setup,在測試套件中配置數據庫鏈接。這裏有更多的測試變量信息。
你能夠免費加入咱們的IRC頻道,並提問。咱們就在那。 :)
前段時間,我也想過作這麼一個能夠正交測試環境來測試應用的東西。只不過,我想到的是使用Gradle、Docker、Jenkins的結合。呵呵。你想到的,也會有別人想到。
翻譯地過程當中,我起了一個疑問,多語言的項目,怎麼辦。固然,多語言的項目的構建會是很是複雜,但真正須要這樣的構建的公司世界也沒幾家。因此,Travis CI目前也沒有必要去支持。
前段時間和大學校友交流,發現他還活在手工找Jar包的時代。他說他身邊也沒有人使用Maven等構建工具。因此,你想推Travis CI這樣的工具,難度也很是的大。你首先須要改變人們觀點,讓他們以爲構建工具能夠解決不少問題的,而後再推構建工具,最後纔到持續集成。
可是,說回來,和夏蟲語冰,你會很痛苦!