【持續集成】使用Travis CI來持續集成你的開源項目

前言

最近負責一個開源項目LEP的“持續集成”模塊,之前從來都沒有聽說過的新概念,所以在這裏記錄一下最近的收穫。

正文

什麼是持續集成

首先持續集成(continuous integration)這個概念很多人都沒有聽說過(我自己還翻了翻這學期的《軟件工程》課本,只有集成測試)。

那麼什麼是持續集成呢?

引用知乎上@趙劼的回答

集成是指軟件個人研發的部分向軟件整體部分交付,以便儘早發現個人開發部分的問題;

而所謂的持續,就是說每完成一個完整的部分,就向下個環節交付,發現問題可以馬上調整。是的(大概是筆誤,應爲“使得”—康康注)問題不會放大到其他部分和後面的環節。

引用知乎上@yumminhuang的回答和圖

持續集成強調開發人員提交了新代碼之後,立刻進行構建、(單元)測試。根據測試結果,我們可以確定新代碼和原有代碼能否正確地集成在一起。

這裏寫圖片描述

這個圖能讓我們理清持續集成要做什麼,即向項目提交修改,馬上進行構建(或者說編譯),然後進行相應的測試,反饋結果,保證儘快合併,使得小改動不會累計爲大改動,以至於出現更多的問題。

對於私有項目,或者說公司的項目來說,我們需要配置一套額外的服務器作爲CI Server,而對於開源項目或者小團隊來說,如果能有簡單可靠還免費的CI服務就好了(成本問題)。而Travis CI則滿足了我們的需求。

Travis CI

Travis CI是一個非常方便的持續集成工具,相對於需要自己配置部署環境的Jenkens,Travis CI更適合開源項目(當然後者更加成熟,更加適合私有項目和企業內的項目)。很多大型的開源項目,比如google的protobuf等,都使用Travis CI來進行持續集成。

使用Travis CI來進行持續集成

我們假定你的開源項目存放在github。

首先使用github帳號登錄Travis CI官網
也就是右上角的sign in

這裏寫圖片描述

然後同步你的倉庫
點擊左側的+號
這裏寫圖片描述

左上角的sync account即可同步

這裏寫圖片描述

然後在下面打開指定倉庫就可以了。

同時我們需要在倉庫中編寫一份名爲.travis.yml的配置文件,來指定我們的項目需要進行怎樣的操作。
這裏以我自己編寫的LEPD項目爲例

sudo: required
language: c
complier: gcc
script: make
before_script: sudo apt-get install libev-dev
notifications:
  email:
    recipients:
      - xxx@gmail.com
    on_success: change
    on_failure: always

可以看到這裏指定了需要的sudo權限,編程語言,編譯器,script即執行的操作,before_script則安裝了項目依賴的libev-dev包,通知的方式email,並且指定了郵件地址。

而對於不同語言等更多細節,還需查看官方文檔

然後便是愉快的commit,可以在官網上查看log,同時郵箱裏也會有通知。

參考閱讀 & 引用

如何理解持續集成、持續交付、持續部署?
持續集成是什麼?
六款不容錯過的開源持續集成工具
用持續集成工具Travis進行構建和部署

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章