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

构建 Gradle 项目并不仅仅限于开发人员的机器。 持续集成(CI) 是一种由来已久的实践,用于为提交给版本控制的每个单独更改运行构建,以收紧反馈循环。

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

你需要什么

  • 命令提示符

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

  • TeamCity 安装(本指南中介绍了安装步骤)

设置典型项目

出于演示目的,本指南将重点关注构建基于 Java 的项目;但是,此设置适用于任何与 Gradle 兼容的项目。更具体地说,是一个用 Java 编写并使用Spek进行测试的 Gradle 插件。首先,我们将在本地计算机上设置项目,然后再在 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<version number>.tar.gz存档,例如,在 Windows 下使用 WinZip、WinRar 或类似实用程序,或在 Linux 或 macOS 下使用以下命令:

tar xfz TeamCity<version number>.tar.gz
  1. 使用 <TeamCity home>/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创建项目

按照创建项目向导操作,它将提示输入项目和构建配置名称,并自动检测构建步骤。选择自动 Gradle 构建步骤并单击Use selected

teamcity 构建步骤

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

添加了 teamcity 步骤

单击“编辑”,在打开的页面上单击“高级选项”。使用 Wrapper 执行构建被认为是 Gradle 的良好实践,并且在自动检测时默认选择此选项。我们想要生成构建扫描,因此我们将在“附加 Gradle 命令行参数”--scan字段中输入该选项。

团队城市扫描

保存设置,我们就可以运行构建了。

在 TeamCity 中运行构建

点击右上角的运行按钮:

teamcity步骤更新

TeamCity 将开始构建,您可以通过单击“构建配置主页”来查看构建进度。构建完成后,您可以通过单击构建号链接来查看构建结果:

团队城市结果

您可以在 TeamCity 中查看测试:

团队城市测试

有关构建的参数和环境的信息可在构建结果的“参数”选项卡上找到。

如果您安装了TeamCity Build Scan 插件,您将在“Build Results”视图中看到指向构建扫描的链接:

teamcity 构建扫描插件

否则,构建日志中将提供给定构建的构建扫描的链接:

teamcity 日志链接

有多种选项可以连续触发 TeamCity 构建:从定期轮询存储库,到按设定的时间表构建,或通过提交后挂钩构建。

进一步阅读

您可以通过以下资源了解有关 TeamCity 高级用法的更多信息:

更多信息可参见TeamCity 文档。关注TeamCity 博客以获取最新消息。

概括

只需几个步骤即可设置和配置在 CI 上执行 Gradle 构建。接收快速反馈的好处是不言而喻的。如果您不使用 TeamCity,没问题,许多 CI 产品与 Gradle 紧密集成,成为一等公民。