iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 11
0
自我挑戰組

Android Architecture 及 Unit Test系列 第 11

[Day 11] Travis CI

  • 分享至 

  • xImage
  •  

這兩天有一些事分心,所以先來把 CI 架起來。

關於 CI/CD 有什麼好處我就不多提了,由於這次我的目標還包含撰寫測試,為了可以自動跑測試,因此這兩天就先建立 CI 環境。

選擇 CI/CD Service

其實除非是大公司或是大型專案有整合上及特殊需求之類的考量,不然對於一般的小公司或是個人專案來說,目前幾個主流的 CI 基本上都沒什麼差別,像是我現在的公司程式碼都放在 Gitlab 裡,所以使用的是 Gitlab CI ,那麼這次我的程式碼放在 Github ,就有不少的選擇了,這次我選擇的 CI Service 是 Travis CI

Getting Start

比較特別的是 Travis CI 有分兩個版本:

我們這邊選擇 travis-ci.org 。

啟用 Travis CI

首先使用 Github 帳號登入 travis-ci.org ,成功登入後如果先前沒有使用過 Travis CI ,那麼必須先選擇左上角的 "Sync account" 按鈕,同步後再打開要使用 Travis CI 的專案

配置 .travis.yml

Travis CI 要求在 Android project 根目錄的地方建立一個 .travis.yml 的配置檔,之後 CI 會根據這個 yaml 檔執行對應的任務,我們可以先開一個分支並寫好 script :

language: android
android:
  components:
    - tools
    - platform-tools
    - build-tools-28.0.3
    - android-28
    - extra-android-m2repository
    - extra-google-m2repository
jdk:
  - oraclejdk8
script:
  - ./gradlew testDebug
before_cache:
  - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
cache:
  directories:
    - $HOME/.m2
    - $HOME/.gradle/caches/
    - $HOME/.gradle/wrapper/
  • language: Travis CI 一開始要指定是要進行哪個語言的 CI ,這邊我們當然是選擇 android
  • components:這裡是讓我們執行 script 前可以做一些準備工作,在這裏我們要先把 Android tools 、 SDK 等都先準備好
  • jdk:執行時使用的 jdk ,這裡使用 oraclejdk8
  • script:實際要執行的任務,我們先執行簡單的 testDebug 就好
  • before_cachecache:由於 Gradle 會 cache 上一次 Build 的東西,那麼為了不讓每次上傳上 Travis CI 時都會誤把 cache 上傳上去,會在這裡把 cache 清除

測試 Travis CI

完成 yaml 後 push 到 Github ,進入 travis-ci.org 並選擇 project ,就可以看到 travis ci 正在執行了

Travis CI 已經初步完成,明天會再補充一些東西。


上一篇
[Day 10] Data layer with Room and repository pattern
下一篇
[Day 12] 使用 Ktlint & Spotless
系列文
Android Architecture 及 Unit Test30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言