使用 Gradle 构建缓存,顶级工程团队能够将 CI 构建时间缩短高达 90%。在此注册我们的构建缓存培训课程,了解你的团队如何实现类似的结果。

构建 Gradle 项目并不止于开发人员的机器。 持续集成 (CI) 已经成为一项长期建立的实践,用于为提交到版本控制的每个更改运行构建,以收紧反馈循环。

在本指南中,我们将讨论如何为典型的 Gradle 项目配置 TeamCity

你需要什么

  • 命令提示符

  • Java 开发工具包 (JDK),版本 1.8 或更高版本

  • TeamCity 安装(本指南中解释了设置步骤)

设置典型项目

为了演示目的,本指南将重点介绍构建基于 Java 的项目;但是,此设置适用于任何与 Gradle 兼容的项目。更具体地说,是用 Java 编写的 Gradle 插件,并使用 Spek 进行测试。首先,我们将把项目设置在你的本地机器上,然后介绍在 CI 上执行相同步骤的操作。

只需按照以下步骤操作

克隆 Gradle 网站插件 存储库

$ 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<版本号>.tar.gz 存档,例如,在 Windows 下使用 WinZip、WinRar 或类似的工具,或在 Linux 或 macOS 下使用以下命令

tar xfz TeamCity<version number>.tar.gz
  1. 使用 <TeamCity 主目录>/bin 目录中提供的 runAll 脚本同时启动 TeamCity 服务器和一个默认代理,例如

runAll.sh start
  1. 要访问 TeamCity Web UI,请导航到 http://localhost:8111/。按照 TeamCity 设置的默认值操作。系统将提示您设置一个新的管理员用户。

接下来,我们可以设置项目并在 TeamCity 中运行构建。

创建 TeamCity 构建

在 TeamCity 中设置新的 Gradle 构建只需要点击几下:TeamCity 附带了 Gradle 插件,因此您无需额外安装插件。但是,建议您安装 TeamCity Build Scan 插件

管理 | 项目 页面上,点击创建项目,使用从仓库 URL 选项,并输入 GitHub 仓库的 URL:https://github.com/gradle/gradle-site-plugin.git

teamcity create project

按照创建项目向导操作,它将提示您输入项目和构建配置名称,并自动检测构建步骤。选择自动 Gradle 构建步骤,然后点击使用所选

teamcity build step

构建步骤将添加到构建配置中

teamcity step added

点击页面上的编辑,在打开的页面上点击高级选项。使用 Wrapper 执行构建被认为是 Gradle 的最佳实践,并且在自动检测中,此选项默认被选中。我们希望生成构建扫描,因此我们将输入--scan选项到其他 Gradle 命令行参数字段中。

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 作为一等公民紧密集成。