在 GitHub Actions 上执行 Gradle 构建
使用 GitHub Actions 的顶级工程团队已经能够通过 Gradle 构建缓存将 CI 构建时间缩短高达 90%。在此注册我们的构建缓存培训课程,了解您的团队如何实现类似的结果。 |
构建 Gradle 项目并不仅仅限于开发人员的机器。 持续集成(CI) 是一种由来已久的实践,用于为提交给版本控制的每个单独更改运行构建,以收紧反馈循环。
在本指南中,我们将讨论如何为 GitHub 上托管的 Gradle 项目配置GitHub Actions 。
介绍
GitHub Actions 是直接内置于 GitHub 中的基于云的 CI 解决方案提供商,使其成为 GitHub 上托管的项目的绝佳选择。
使用Gradle Build Action可以轻松地将任何 Gradle 项目集成到 GitHub Actions 工作流程中。
你需要什么
-
文本编辑器
-
命令提示符
-
Java 开发工具包 (JDK),版本 1.8 或更高版本
-
本地 Gradle 安装,用于初始化新的 Gradle 项目
-
一个 GitHub 帐户
在 GitHub 上设置 Gradle 项目
如果您在 GitHub 上托管了现有的 Gradle 项目,那么您可以跳过此步骤并直接转到配置 GitHub 操作。
如果没有,请按照以下步骤在 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 构建扫描是查看构建结果并提供有关构建的宝贵见解的好方法。为了从 GitHub Actions 发布构建扫描,您需要预先批准条款和条件。
为此,请将以下内容添加到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 操作
.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 工作流程运行的结果
单击工作流运行的链接将显示工作流运行的详细信息,包括为构建生成的构建扫描的链接。
配置构建扫描对于 GitHub Actions 等云 CI 系统特别有用,因为它具有其他方式难以获取的额外环境和测试结果信息。 |
启用下载工件的缓存
此工作流程使用的gradle-build-action将允许在内置 GitHub Actions 缓存中保存和恢复 Gradle 用户主目录。这将避免重新下载 Gradle 版本和项目依赖项以及重用先前工作流程执行中的状态,从而加快 GitHub Actions 构建速度。
有关从缓存中保存/恢复哪些条目的详细信息可以在以下Post Setup Gradle
步骤中查看:
进一步阅读
了解有关使用 GitHub Actions 构建 Gradle 项目的更多信息:
概括
只需几个步骤即可设置和配置在 CI 上执行 Gradle 构建。接收快速反馈的好处是不言而喻的。 GitHub Actions 提供了一种简单、便捷的机制来为 GitHub 上托管的任何 Gradle 项目设置 CI。