如何使用特定运行程序增强构建

TeamCity 捆绑了大量可以增强您的构建的功能。 在本教程中,我们将探讨特定运行程序的使用方法以及使用它们的原因。

什么是构建运行程序,TeamCity 中提供哪些类型的运行程序?

构建运行程序是 TeamCity 的组成部分,可以实现与特定构建工具(Ant、MSBuild、命令行等)的集成。 利用构建运行程序提供的设置,您可以指定要运行的构建任务、要使用的构建工具版本、要用作容器的 Docker/Linux 镜像等。 在构建配置中,构建运行程序定义了如何运行构建以及如何报告其结果。 TeamCity 提供了许多开箱即用的构建运行程序,包括 .NET、Maven、Gradle、Docker、Python、Node.js 等。

打开并编辑构建配置。 在这里,我们有一个构建步骤 – 命令行构建步骤。 脚本处理以下命令:

  • cd 进入计算器服务目录。
  • 运行 mvn clean package
  • .jar 文件上传到私有 S3 存储桶。
tutorials-img

在这里,我们将摆脱 mvn clean package 步骤并使用 TeamCity 的特定 Maven 功能。 我们可以直接移除自定义脚本中的行并点击 Save(保存):

tutorials-img

添加新的构建步骤

之后,我们将添加一个新的构建步骤。 TeamCity 将建议选择特定运行程序:

tutorials-img

对于 TeamCity 集成的每项技术,您都可以找到特定的运行程序。 例如,如果您想构建 .NET 项目,您可以选择 .NET 运行程序。 如果要运行命令行脚本,您将使用命令行运行程序。 同样,您可以使用 Docker 运行程序执行 Docker 特定的步骤,使用 Gradle 运行程序执行 Gradle 项目等。

您可以在文档中找到 TeamCity 构建运行程序的完整列表。

由于我们正在处理 Maven 项目,我们从下拉列表中选择 Maven。 之后,我们将填写 TeamCity 在此步骤中建议的一些字段。

tutorials-img

我们的 pom.xml 文件位于计算器服务目录中,因此我们将点击树图标来选择正确的文件夹。 由于您可以获得所有目录的良好树状视图,您不必输入目录名称(并避免潜在拼写错误)。 只需从列表中选择目录。

您可以提供来自 Docker hub 的 Docker 镜像名称(例如 maven:latest),在 Docker 容器内运行 mvn clean package 步骤。 TeamCity 将获取此镜像,透明地从中启动 Docker 容器,在其中运行 mvn clean package 目标,然后处置容器。

tutorials-img

选择覆盖率运行程序

要继续手动构建步骤配置,请点击此链接:

tutorials-img

在 TeamCity 中,您可以选择特定的覆盖率运行程序。 例如,您可以添加 IntelliJ IDEA 或 JaCoCo 代码覆盖率运行程序,而不是在 pom.xml 文件中硬编码。

我们添加 com.jetbrains.teamcity.* 作为软件包模式名称。 然后,TeamCity 将分析名称与代码覆盖率模式匹配的软件包。

tutorials-img

TeamCity 还允许您配置高级选项。 例如,您可以选择不同的 Maven 项目版本或选择特定的 Java 版本来运行整个项目。

tutorials-img

借助这些 UI 选项,您将无需担心命令行调用是否有效。 TeamCity 将帮您搞定。

现在,我们已经运行命令行脚本并拥有后续的 Maven 步骤。 我们想重新排列构建步骤,使 mvn clean package 首先运行,然后是命令行上传到 S3。

tutorials-img

接下来,点击 Run(运行),一切都应如预期一样运行。

Maven 运行程序能让我们做什么?

在构建完成运行后,您可以访问构建概览页面。 这里有 Maven Build Info(Maven 构建信息)和 Code Coverage(代码覆盖率)等新标签页,以及 Tests(测试)和 Code Coverage(代码覆盖率)结果的新部分。

tutorials-img

Maven build info(Maven 构建信息)

Maven build info(Maven 构建信息)页面上,您将获得使用特定 Maven 版本执行的目标的概览。 您还将看到生成的工件,例如 Maven 生成的 .jar 文件。

报告还将显示 Maven 为此特定构建拉入的所有特定依赖项及其版本。 这将提供构建包含的库的概览, 也有助于调试目的。

您还将看到在构建期间激活的所有有效 Maven 插件。

tutorials-img

测试概览页面

使用 Maven 运行程序可以免费获得测试概览页面,了解许多实用信息。 您可以在报告中看到:

  • 总体测试状态(成功、失败、不稳定等)
  • 执行的测试类和方法
  • 测试持续时间
  • 测试运行顺序

每个测试都具有测试历史记录,提供测试的所有基本信息。 需要调查测试中可能出现的问题时,测试历史记录会很有帮助,例如“为什么这个测试突然需要更长时间? 这是不稳定测试吗?”等等。

我们在本视频中详细介绍了测试报告。

代码覆盖率报告

代码覆盖率报告为我们提供了有关所使用的类和方法的信息,以及测试覆盖的代码的百分比。

您只需要在 IntelliJ IDEA 代码覆盖率运行程序中选择几个下拉选项,即可在 TeamCity UI 中获取所有报告。

tutorials-img

今天的文章就到这里! 观看其他教程,了解如何使用 TeamCity 特定功能,例如测试报告或代码覆盖率报告。

构建快乐!