在 GitHub Actions 上执行 Gradle 构建
使用 GitHub Actions 的顶级工程团队通过使用 Gradle 构建缓存,将 CI 构建时间缩短了高达 90%。在此注册参加我们的构建缓存培训课程,了解您的团队如何实现类似的结果。 |
构建 Gradle 项目并不止于开发人员的机器。 持续集成 (CI) 是一种长期建立的实践,用于对提交到版本控制的每一个更改运行构建,以收紧反馈循环。
在本指南中,我们将讨论如何为托管在 GitHub 上的 Gradle 项目配置 GitHub Actions。
简介
GitHub Actions 是一个基于云的 CI 解决方案提供商,直接内置于 GitHub,使其成为托管在 GitHub 上的项目的绝佳选择。
使用 Gradle Build Action 可以轻松地将任何 Gradle 项目集成到 GitHub Actions 工作流程中。
您需要什么
-
文本编辑器
-
命令提示符
-
Java 开发工具包 (JDK),版本 1.8 或更高版本
-
本地 Gradle 安装,用于初始化新的 Gradle 项目
-
GitHub 帐户
在 GitHub 上设置 Gradle 项目
如果您在 GitHub 上托管了现有的 Gradle 项目,则可以跳过此步骤,直接转到 配置 GitHub Actions。
如果没有,请按照以下步骤在 GitHub 上初始化新的 Gradle 项目。
在本地克隆存储库
$ git clone [email protected]:<YOUR-GITHUB-USER>/github-actions-gradle-sample.git Cloning into 'github-actions-gradle-sample'... $ cd github-actions-gradle-sample
初始化 Gradle 项目并提交到存储库
使用 gradle init
创建一个新的 Gradle 项目。您可以在 init
期间选择任何可用的选项,但我们建议选择“library”作为项目类型。
项目生成后,提交更改并推送到存储库。
$ gradle init $ git add . $ git commit -m "Initial commit" $ git push
启用 Build Scan™ 发布
Gradle Build Scans 是查看构建结果并提供有关构建的宝贵见解的好方法。为了从 GitHub Actions 发布 Build Scans,您需要预先批准条款和条件。
为此,请将以下内容添加到您的 settings.gradle[.kts]
文件的顶部。GitHub Actions 会设置“CI”环境变量
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 工作流运行的结果
单击工作流运行的链接将显示工作流运行的详细信息,包括指向为构建生成的构建扫描的链接。
配置 构建扫描 在像 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 提供了一种简单便捷的机制。