使用 Travis CI 的頂尖工程團隊已能透過使用 Gradle 組建快取,將 CI 組建時間縮短多達 90%。在此註冊我們的組建快取訓練課程,瞭解您的團隊如何達成類似的成果。

組建 Gradle 專案並不僅止於開發人員的機器。持續整合 (CI) 一直以來都是針對提交至版本控制的每個變更執行組建的既定作法,以縮短回饋迴路。

在本指南中,我們將討論如何為典型的 Gradle 專案設定 Travis CI

您需要具備的條件

  • 文字編輯器

  • 命令提示字元

  • Java 開發套件 (JDK),版本 1.8 或更高

設定典型專案

舉例來說,本指南將專注於以 Java 為基礎的專案。更具體來說,是以 Java 撰寫並使用 Spek 進行測試的 Gradle 外掛。首先,我們將在您的本機機器上設定專案,然後再於 CI 上執行相同的步驟。

只要執行下列步驟

複製 Gradle Site 外掛 存放庫

$ git clone https://github.com/gradle/gradle-site-plugin.git
Cloning into 'gradle-site-plugin'...
$ cd gradle-site-plugin

組建專案

身為 Java 專案的開發人員,您通常會想要編譯原始碼、執行測試並組建 JAR 人工製品。對於 Gradle 外掛來說,也是一樣的。下列指令可達成此目的

$ ./gradlew build

BUILD SUCCESSFUL
14 actionable tasks: 14 executed

專案提供 Gradle 封裝 作為存放庫的一部分。這是任何 Gradle 專案的建議作法,因為它讓您的專案可以在 CI 上組建,而無需安裝 Gradle 執行時期。

組建掃描整合

範例專案配備支援,可產生建置掃描。使用命令列選項 --scan 執行建置會在主控台中呈現連結。

$ ./gradlew build --scan
Publishing build scan...
https://gradle.com/s/7mtynxxmesdio

以下部分將說明如何使用 Travis CI 建置專案。

設定 Travis CI

Travis CI 是一個免費的雲端 CI 解決方案供應商,使其成為開放原始碼專案的絕佳選擇。只要專案以公開儲存庫的形式託管在 GitHub 上,您就可以建置任何專案。Travis CI 沒有提供內建選項,用於後處理建置產生的成品,例如主機 JAR 檔案或 HTML 測試報告。您必須使用外部服務 (例如 S3) 來傳輸檔案

建立設定檔

Travis CI 要求您在名為 .travis.yml 的原始碼中檢查設定檔。此檔案包含建置專案的所有相關說明。

以下設定檔會指示 Travis CI 使用 JDK 8 建置 Java 專案,略過一般的預設執行步驟,並使用 Wrapper 執行 Gradle 建置。

language: java
install: skip

os: linux
dist: trusty
jdk: oraclejdk8

script:
  - ./gradlew build --scan -s

從 Travis CI 設定檔中選取專案。從儀表板啟動儲存庫後,專案即可準備好隨每次提交建置。

Enabling a project
設定建置掃描在 Travis CI 等雲端 CI 系統中特別有幫助,因為它有其他環境和測試結果資訊,否則難以取得。

啟用已下載成品快取

Gradle 的相依性管理機制會從二進位儲存庫解析已宣告的模組及其對應的成品。下載後,檔案將從快取中重新使用。您需要明確告知 Travis CI 您想要儲存和使用 Gradle 快取和 Wrapper,以進行後續的建置呼叫。

before_cache:
  - rm -f  $HOME/.gradle/caches/modules-2/modules-2.lock
  - rm -fr $HOME/.gradle/caches/*/plugin-resolution/

cache:
  directories:
    - $HOME/.gradle/caches/
    - $HOME/.gradle/wrapper/

進一步閱讀

您可以透過這些資源進一步了解進階 Travis CI 使用方式

摘要

在 CI 上執行 Gradle 建置只需幾個步驟即可設定和組態。快速收到回饋的優點不言而喻。如果您沒有使用 Travis CI,沒問題,許多 CI 產品都將 Gradle 緊密整合為一級公民。