在 GitHub Actions 上執行 Gradle 建置
使用 GitHub Actions 的頂尖工程團隊已能透過使用 Gradle 建置快取將 CI 建置時間縮短多達 90%。在此註冊參加我們的建置快取訓練課程,進一步瞭解您的團隊如何達成類似的成果。 |
建置 Gradle 專案並非僅止於開發人員的機器。持續整合 (CI) 是一種行之有年的做法,用於執行對版本控制中提交的每一項變更進行建置,以縮小回饋迴路。
在本指南中,我們將探討如何為在 GitHub 上託管的 Gradle 專案設定 GitHub Actions。
簡介
GitHub Actions 是一種雲端 CI 解決方案供應商,直接內建於 GitHub 中,使其成為在 GitHub 上託管的專案的絕佳選擇。
使用 Gradle 建置動作 可以輕鬆地將任何 Gradle 專案整合到 GitHub Actions 工作流程中。
您需要具備的條件
-
文字編輯器
-
命令提示字元
-
Java 開發套件 (JDK),版本 1.8 或更高
-
本機 Gradle 安裝,用於初始化新的 Gradle 專案
-
GitHub 帳戶
在 GitHub 上設定 Gradle 專案
如果您在 GitHub 上有現有的 Gradle 專案,則可以跳過此步驟並直接移至 設定 GitHub Actions。
如果不是,請遵循下列步驟在 GitHub 上初始化新的 Gradle 專案。
在本地複製儲存庫
$ git clone git@github.com:<YOUR-GITHUB-USER>/github-actions-gradle-sample.git Cloning into 'github-actions-gradle-sample'... $ cd github-actions-gradle-sample
初始化 Gradle 專案並提交至儲存庫
使用 gradle init
建立新的 Gradle 專案。您可以在 init
期間選擇任何可用的選項,但我們建議選擇「函式庫」作為專案類型。
專案產生後,提交變更並推送到儲存庫。
$ gradle init $ git add . $ git commit -m "Initial commit" $ git push
啟用 Build Scan™ 發佈
Gradle Build Scans 是檢視您的建置結果的絕佳方式,並提供您建置的寶貴見解。為了從 GitHub Actions 發佈 Build Scans,您需要預先核准條款和條件。
為此,請將下列內容新增至 settings.gradle[.kts]
檔案的最上方。「CI」環境變數由 GitHub Actions 設定
plugins {
id("com.gradle.enterprise") version("3.16.2")
}
gradleEnterprise {
if (System.getenv("CI") != null) {
buildScan {
publishAlways()
termsOfServiceUrl = "https://gradle.com/terms-of-service"
termsOfServiceAgree = "yes"
}
}
}
測試建置專案
專案使用 Gradle Wrapper 來建置專案。這是任何 Gradle 專案的建議做法,因為它讓您的專案可以在 CI 中建置,而無需安裝 Gradle 執行時期。
在要求 GitHub Actions 建置您的專案之前,最好確保它在本地建置。新增「CI」環境變數將模擬在 GitHub Actions 上執行建置。
下列指令可達成此目的
$ CI=true ./gradlew build BUILD SUCCESSFUL Publishing build scan... https://gradle.com/s/7mtynxxmesdio
如果建置如預期運作,請提交變更並推送到儲存庫。
$ git commit -a -m "Publish Build Scans from GitHub Actions" $ git push
設定 GitHub Actions
您可以透過將 .github/workflows/<workflow-name>.yml
檔案新增至您的儲存庫來建立 GitHub Actions 工作流程。此工作流程定義檔案包含在 GitHub Actions 上建置專案的所有相關指示。
下列工作流程檔案指示 GitHub Actions 使用 Gradle Wrapper 建置您的 Gradle 專案,並由 GitHub Actions 的預設 Java 發行版執行。建立一個名為 .github/workflows/build-gradle-project.yml
的新檔案,內容如下,並將其推送到 GitHub 儲存庫。
name: Build Gradle project on: push: jobs: build-gradle-project: runs-on: ubuntu-latest steps: - name: Checkout project sources uses: actions/checkout@v4 - name: Setup Gradle uses: gradle/gradle-build-action@v2 - name: Run build with Gradle Wrapper run: ./gradlew build
提交變更並推送到儲存庫
$ git add . $ git commit -m "Add GitHub Actions workflow" $ git push
檢視 GitHub Actions 結果
推入此工作流程檔案後,您應該會立即在儲存庫的 GitHub Actions 頁面上看到工作流程執行(例如 https://github.com/gradle/gradle/actions)。後續推入儲存庫的任何動作都會觸發工作流程執行。
檢視 GitHub Actions 工作流程執行的結果
按一下工作流程執行的連結,將會顯示工作流程執行的詳細資料,包括連結到為建置產生的建置掃描。
設定 建置掃描 在雲端 CI 系統(例如 GitHub Actions)上特別有幫助,因為它有其他環境和測試結果資訊,否則很難取得。 |

啟用已下載人工製品的快取
此工作流程使用的 gradle-build-action 將啟用在內建 GitHub Actions 快取中儲存和還原 Gradle 使用者家目錄。這將透過避免重新下載 Gradle 版本和專案相依性,以及重複使用前一個工作流程執行的狀態,來加速您的 GitHub Actions 建置。
可以在 Post Setup Gradle
步驟中檢視從快取中儲存/還原哪些條目的詳細資料

進一步閱讀
深入瞭解如何使用 GitHub Actions 建置 Gradle 專案
摘要
只要幾個步驟,就可以設定和設定在 CI 上執行 Gradle 建置。快速收到回饋的好處顯而易見。GitHub Actions 提供一個簡單、方便的機制,為任何託管在 GitHub 上的 Gradle 專案設定 CI。