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

建構 Gradle 專案並非只侷限在開發人員的機器上。持續整合 (CI) 是一種長久以來的做法,用於針對提交至版本控制的每個變更執行組建,以縮短回饋迴路。

在本指南中,我們將討論如何針對典型 Gradle 專案設定 TeamCity

您需要的內容

  • 命令提示字元

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

  • TeamCity 安裝(設定步驟說明在本指南中)

設定典型專案

為了示範目的,本指南將專注於建構基於 Java 的專案;但是,此設定將適用於任何相容 Gradle 的專案。更具體地說,是一個以 Java 編寫並使用 Spek 測試的 Gradle 外掛程式。首先,我們會在您的本地機器上設定專案,然後再介紹 CI 上的相同步驟。

請遵循下列步驟

複製 Gradle Site Plugin 儲存庫

$ 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 Wrapper 作為儲存庫的一部分。這是任何 Gradle 專案的建議做法,因為它能讓您的專案在 CI 上建置,而無需安裝 Gradle 執行時期。

建置掃描整合

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

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

設定 TeamCity

JetBrains TeamCity 是一個功能強大且使用者友善的持續整合和部署伺服器,可立即運作。JetBrains 提供多種授權選項,讓您可以根據您的需求調整 TeamCity 的規模。在此設定中,我們將使用 TeamCity Professional,這是一個免費的完整功能版本,適合一般的專案。在本節中,您將學習如何設定 TeamCity、建立建置設定檔以從 GitHub 拉取原始碼並執行 Gradle 建置。

安裝並啟動 TeamCity

TeamCity 網站 上,您可以從各種發行版本中進行選擇。此文章使用與 Tomcat servlet 容器搭配的 TeamCity,並涵蓋在同一台機器上執行 TeamCity 伺服器和預設建置代理程式的評估設定。

  1. 請確定您已安裝 JRE 或 JDK,且 JAVA_HOME 環境變數指向 Java 安裝目錄。需要 Oracle Java 1.8 JDK。

  2. 下載 TeamCity .tar.gz 發行版。解壓縮 TeamCity<version number>.tar.gz 檔案,例如,在 Windows 中使用 WinZip、WinRar 或類似的工具,或在 Linux 或 macOS 中使用下列指令

tar xfz TeamCity<version number>.tar.gz
  1. 同時啟動 TeamCity 伺服器和一個預設代理程式,使用 <TeamCity home>/bin 目錄中提供的 runAll 腳本,例如

runAll.sh start
  1. 若要存取 TeamCity 網路使用者介面,請導航至 https://127.0.0.1:8111/。遵循 TeamCity 設定的預設值。系統會要求您設定新的管理員使用者。

接下來,我們可以在 TeamCity 中設定專案並執行建置。

建立 TeamCity 建置

在 TeamCity 中設定新的 Gradle 建置只需幾個步驟:TeamCity 附帶 Gradle 外掛程式,因此您不需要另外安裝外掛程式。不過,建議您安裝TeamCity Build Scan 外掛程式

管理 | 專案頁面上按一下建立專案,使用從儲存庫網址選項,並輸入 GitHub 儲存庫的網址:https://github.com/gradle/gradle-site-plugin.git

teamcity create project

按照建立專案精靈指示,它會提示您輸入專案和建置組態名稱,並自動偵測建置步驟。選取自動 Gradle 建置步驟,然後按一下使用所選

teamcity build step

建置步驟已新增至建置組態

teamcity step added

按一下編輯,在開啟的頁面上按一下進階選項。使用 Wrapper 執行建置被視為 Gradle 的良好做法,而且在自動偵測時,此選項會預設選取。我們想要產生建置掃描,因此我們會在其他 Gradle 命令列參數欄位中輸入--scan選項。

teamcity scan

儲存設定,我們就可以執行建置了。

在 TeamCity 中執行建置

按一下右上角的執行按鈕

teamcity step upd

TeamCity 會開始建置,您可以按一下建置組態首頁來檢視建置進度。當建置完成時,您可以按一下建置編號連結來檢閱建置結果

teamcity results

您可以在 TeamCity 中直接檢視測試

teamcity tests

建置的參數和環境資訊可在建置結果的參數索引標籤中取得。

如果您已安裝TeamCity Build Scan 外掛程式,您會在建置結果檢視中看到建置掃描的連結

teamcity build scan plugin

否則,特定建置的建置掃描連結會顯示在建置記錄中

teamcity log link

有各種選項可以持續觸發 TeamCity 建置:從定期輪詢儲存庫,到依據設定的排程建立,或透過提交後掛勾

進一步閱讀

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

更多資訊請參閱 TeamCity 文件。請追蹤 TeamCity 部落格 以取得最新消息。

摘要

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