TeamCity 捆绑了大量可以增强您的构建的功能。 在本教程中,我们将探讨特定运行程序的使用方法以及使用它们的原因。
构建运行程序是 TeamCity 的组成部分,可以实现与特定构建工具(Ant、MSBuild、命令行等)的集成。 利用构建运行程序提供的设置,您可以指定要运行的构建任务、要使用的构建工具版本、要用作容器的 Docker/Linux 镜像等。 在构建配置中,构建运行程序定义了如何运行构建以及如何报告其结果。 TeamCity 提供了许多开箱即用的构建运行程序,包括 .NET、Maven、Gradle、Docker、Python、Node.js 等。
打开并编辑构建配置。 在这里,我们有一个构建步骤 – 命令行构建步骤。 脚本处理以下命令:
cd
进入计算器服务目录。mvn clean package
。.jar
文件上传到私有 S3 存储桶。 在这里,我们将摆脱 mvn clean package
步骤并使用 TeamCity 的特定 Maven 功能。 我们可以直接移除自定义脚本中的行并点击 Save(保存):
之后,我们将添加一个新的构建步骤。 TeamCity 将建议选择特定运行程序:
对于 TeamCity 集成的每项技术,您都可以找到特定的运行程序。 例如,如果您想构建 .NET 项目,您可以选择 .NET 运行程序。 如果要运行命令行脚本,您将使用命令行运行程序。 同样,您可以使用 Docker 运行程序执行 Docker 特定的步骤,使用 Gradle 运行程序执行 Gradle 项目等。
您可以在文档中找到 TeamCity 构建运行程序的完整列表。
由于我们正在处理 Maven 项目,我们从下拉列表中选择 Maven。 之后,我们将填写 TeamCity 在此步骤中建议的一些字段。
我们的 pom.xml
文件位于计算器服务目录中,因此我们将点击树图标来选择正确的文件夹。 由于您可以获得所有目录的良好树状视图,您不必输入目录名称(并避免潜在拼写错误)。 只需从列表中选择目录。
您可以提供来自 Docker hub 的 Docker 镜像名称(例如 maven:latest
),在 Docker 容器内运行 mvn clean package
步骤。 TeamCity 将获取此镜像,透明地从中启动 Docker 容器,在其中运行 mvn clean package
目标,然后处置容器。
要继续手动构建步骤配置,请点击此链接:
在 TeamCity 中,您可以选择特定的覆盖率运行程序。 例如,您可以添加 IntelliJ IDEA 或 JaCoCo 代码覆盖率运行程序,而不是在 pom.xml
文件中硬编码。
我们添加 com.jetbrains.teamcity.*
作为软件包模式名称。 然后,TeamCity 将分析名称与代码覆盖率模式匹配的软件包。
TeamCity 还允许您配置高级选项。 例如,您可以选择不同的 Maven 项目版本或选择特定的 Java 版本来运行整个项目。
借助这些 UI 选项,您将无需担心命令行调用是否有效。 TeamCity 将帮您搞定。
现在,我们已经运行命令行脚本并拥有后续的 Maven 步骤。 我们想重新排列构建步骤,使 mvn clean package
首先运行,然后是命令行上传到 S3。
接下来,点击 Run(运行),一切都应如预期一样运行。
在构建完成运行后,您可以访问构建概览页面。 这里有 Maven Build Info(Maven 构建信息)和 Code Coverage(代码覆盖率)等新标签页,以及 Tests(测试)和 Code Coverage(代码覆盖率)结果的新部分。
Maven build info(Maven 构建信息)
在 Maven build info(Maven 构建信息)页面上,您将获得使用特定 Maven 版本执行的目标的概览。 您还将看到生成的工件,例如 Maven 生成的 .jar
文件。
报告还将显示 Maven 为此特定构建拉入的所有特定依赖项及其版本。 这将提供构建包含的库的概览, 也有助于调试目的。
您还将看到在构建期间激活的所有有效 Maven 插件。
测试概览页面
使用 Maven 运行程序可以免费获得测试概览页面,了解许多实用信息。 您可以在报告中看到:
每个测试都具有测试历史记录,提供测试的所有基本信息。 需要调查测试中可能出现的问题时,测试历史记录会很有帮助,例如“为什么这个测试突然需要更长时间? 这是不稳定测试吗?”等等。
我们在本视频中详细介绍了测试报告。
代码覆盖率报告
代码覆盖率报告为我们提供了有关所使用的类和方法的信息,以及测试覆盖的代码的百分比。
您只需要在 IntelliJ IDEA 代码覆盖率运行程序中选择几个下拉选项,即可在 TeamCity UI 中获取所有报告。
今天的文章就到这里! 观看其他教程,了解如何使用 TeamCity 特定功能,例如测试报告或代码覆盖率报告。
构建快乐!