使用 Travis-CI 整合 GitHub 進行自動化建置

做軟體的人都知道持續開發(Continuous Integration)的重要,雖然 CI 的導入很費時,短期內也不見的看得到成效。可是做 CI 是一種保障,長期來看,透過這種自動化的建置程序,可以免除一些不必要的錯誤, 減少人力浪費,並提升軟體品質。

不過,過去 CI 的導入得要自行架設系統,往往耗時數個月的人力才能完成 CI 系統的建置與設定。如今,CI 已經上雲端了,Travis-CI 的雲端環境,目前可以整合 GitHub 進行自動化建置,大約幾分鐘時間,就能完成全部的設定。除非你有平行處理的需求,否則這一切都是免費的。

目前 Travis-CI 支援包括 Android、Objective-C、Java、JavaScript (含 Node.JS)、Python、C#、PHP 等數十種語言,詳細清單可參考 docs.travis-ci.com

首先請到 Travis-CI.com 註冊帳號

Travis-CI 會透過 OAuth 自動連結你的 GitHub 帳號,然後列出你在 GitHub 上全部的 Repository。註冊完成之後,依照頁面指示,只要三個步驟就能完成程式建置的設定。


首先,選定要做 CI 的 GitHub 專案,並啟用設定。

然後,在程式 GitHub Repository 的根目錄新增設定檔 .travis.yml,這裡有各種語言的參數。

以下是 Android 的範例:
language: android

android:
  components:
    - tools
    - build-tools-23.0.2
    - android-23
    - extra-google-m2repository
    - extra-android-m2repository
    - extra-android-support

script:
  ./gradlew assembleRelease

如果 Compile SDK Version 已升級到 Android N (24),因為 Android N 的  JDK 版本需要 1.8 以上,可是 Travic-CI 預設的環境 JDK 版本是 1.7.0,因此執行時會出錯。此時,可以在 .travis.yml 指定 JDK 的版本。
jdk:
  - oraclejdk8

最後,選定何時觸發 CI 建置程序,下圖的設定是程式 Push 到 GitHub 之後觸發。

完成之後,未來只要程式 Push 到 GitHub,Travis-CI 就會自動觸發 CI 程序。CI 建置程序會在 雲端的 Ubuntu Container 執行,透過網頁介面,可以即時看到執行的 Log。如果建置失敗,會自動發信到你的信箱。


最後,Travis-CI 還提供語法,讓我們把建置狀態顯示在 GitHub 的 README.md 上,讓其他開發者了解這個專案的完整度。



以上概略說明程式建置的過程,事實上,Travis-CI 也可以做自動化測試和佈署,以 Android 來說,要把自動化測試或佈署的邏輯寫在 Gradle,然後在 .travis.yml 下指令啟用模擬器來執行測試。



相關文章

如何將電腦畫面經由 Chromecast 投放到電視螢幕上

Chrome 的檔案續傳功能

Mac與Android裝置傳輸檔案的方法

使用 Vysor 在電腦上控制 Android 裝置