TeamCity On-Premises 2025.07 Help

TeamCity 2019.2 中的新功能

新的灵活清理规则

自动构建清理功能自 TeamCity 早期版本以来就已存在。 它允许方便地删除旧的和不再必需的构建数据。 虽然提供的定制选项相当容易配置,但它们只涵盖了最常见的情况,并不允许进行微调。

在此版本中,我们引入了更多选项,以便灵活地控制清理过程。 除了现有的项目或构建配置的 "基础规则",您现在可以创建多个 "保留规则" 来指定在清理过程中要保存的构建和数据。 保留规则更加精细,可以覆盖诸如保留带有某个标签(例如, release )或在某个分支中的所有构建的情况。 虽然使用新的 keep 规则需要更好地理解不同类型的构建和它们的数据,但它也提供了更大的灵活性。

清理规则 部分的 项目设置 允许管理当前项目及其子项目和构建配置的基本规则和保留规则。

清理规则页面

当添加一个保持规则时,您可以指定:

  • 要保留的构建数据 :历史记录、工件、日志、统计数据或所有内容。

  • 构建范围 :规则将影响的时间间隔或最后构建的数量。

  • 可选地,按其 筛选状态标记分支 对构建进行分类。 选择是否仅将构建限制为 个人非个人
    您还可以选择规则是单独应用于每个匹配的分支,还是作为一个整体应用于选定分支中的所有构建。

保留规则的示例:

保留规则示例

Clean-up 中阅读更多内容。

度量报告

TeamCity 现在提供了 Prometheus兼容的服务器指标,这些指标显示在 诊断 | 指标 选项卡上,并可通过 app/metrics API 端点获取。

要访问度量指标,请确保您的 TeamCity 用户帐户已被分配" 查看使用统计"权限。

包含的指标有:

  • CPU、内存和系统负载

  • 处理构建队列所花费的时间

  • 活跃用户会话的数量,

  • 等等

完整列表可以通过 https://<teamcity-server-host>/app/metrics 取得。

部分指标是实验性的,但您可以通过在端点 URL 中添加 ?experimental=true 查询字符串或在 指标 选项卡上启用 "显示实验性指标" 选项来访问它们。

要收集这些指标,我们建议您使用 Prometheus 数据库,或者结合使用 TelegrafInfluxDB。 为了可视化表示这些指标,您可以使用 Grafana 或任何其他类似的解决方案。

Grafana 中展示的 TeamCity 指标示例:

TeamCity 指标在 Grafana 中表示的示例

构建运行程序脚本中的代码高亮

我们已经为以下构建运行程序的脚本增加了自动代码高亮和行号功能: Command LineAntPowerShellDockerNAnt以及 Rake ,同时也可用于 Amazon EC2镜像的配置。

为了提高可读性,您现在可以通过点击输入表单旁边的 code-wrap-icon.png 来对代码进行软换行。

在 TeamCity 中的 Dockerfile 高亮示例:

在 TeamCity 中 Dockerfile 高亮显示的示例

对 EC2 启动模板的支持

TeamCity 现在支持云实例的 Amazon EC2 启动模板。 许多 EC2 用户都很欣赏启动模板,因为它们允许复用一次定义的启动规格用于所有新实例,这消除了每次请求新实例时都需要描述启动设置的需求。

如果您的云配置文件已连接到 Amazon 服务器,TeamCity 将自动检测到此服务器上可用的启动模板。 只需选择一个模板作为镜像 Source ,并指定其版本,TeamCity 将根据模板参数请求实例。

为 Amazon EC2 配置 TeamCity 中阅读更多。

在 TeamCity 启动时恢复备份

如果您是首次启动 TeamCity 服务器实例并希望恢复之前 TeamCity 安装的备份数据,您现在可以直接从启动屏幕 UI 恢复备份。

自动备份恢复

从备份中恢复 TeamCity 数据 中阅读更多内容。

在统一差异上运行个人构建

现在,您可以运行一个包含您本地更改的个人构建,这些更改基于通过 TeamCity UI 或者通过 REST API 上传的差分补丁。

以前,只有将您的 TeamCity 服务器与某些 支持的 IDE集成后,才能根据您的本地更改运行个人构建。 现在,您可以将补丁保存为 .diff 文件,采用统一格式(例如,使用 IntelliJ IDEA 或者 git diff 命令)并直接上传到服务器。

关于这个功能的更多内容,请在 Personal Build 中阅读。

请注意,这是一个实验性功能。 TeamCity 提供了 Git 和 IntelliJ IDEA 生成的 unidiff 文件的稳定解析。 非二进制文件中的二进制更改不受支持。

扩展的云配置文件 REST API

TeamCity REST API 现在提供了 .../app/rest/cloud/profiles.../app/rest/cloud/images.../app/rest/cloud/instances 这些端点,它们公开的云集成细节与 TeamCity 用户界面中提供的信息相同。

预定义的拉取请求构建参数

我们已经添加了一些预定义的构建参数,以显示拉取请求的重要信息,因此它可以在构建配置的设置或构建脚本中使用:

teamcity.pullRequest.number //pull request number teamcity.pullRequest.title //pull request title teamcity.pullRequest.source.branch //VCS name of the source branch; provided only if the source repository is the same as the target one teamcity.pullRequest.target.branch //VCS name of the target branch

跨平台 dotCover 的支持

TeamCity 现在支持跨平台的 JetBrains dotCover(版本 2019.2.3+)来为 Linux 和 macOS 的 .NET Core 项目收集代码覆盖率。

dotCover 2019.2.3 适用于 Windows ,并且被 TeamCity 打包在一起。 如果您需要在非 Windows 平台上收集代码覆盖率,请在 管理 | 工具 下添加跨平台的 dotCover 工具,并在 .NET CLI构建步骤中启用 dotCover 覆盖率。 如果您也想在 Windows 下使用跨平台 dotCover,请确保代理已安装 .NET Framework SDK 4.6.1+。

现在您也可以在 Docker 容器内使用 dotCover 运行代码覆盖率分析,需借助 容器包装器 扩展。

多节点设置的更新

在次级节点上的用户级操作

在 TeamCity 的早期版本中,次级节点提供了只读界面。 无法将构建添加到队列中,标记/固定构建,或执行任何其他用户级别的操作。 随着这个版本的发布,它发生了变化。 现在,如果辅助节点被授予任何责任(即它不充当只读服务器),它将为用户启用构建操作。 当前,支持的用户级操作包括:

  • 触发构建,包括自定义或个人的构建

  • 中止构建

  • 固定 / 标记 / 评论构建

  • 删除构建

  • 分配调查和静音构建问题和测试

  • 将构建标记为成功/失败

  • 合并源和标签源操作

在我们的跟踪器中查看支持的操作完整列表: TW-62749

管理员级别的操作尚未在次要节点上可用。 如果您需要更改服务器配置,请使用主服务器。

在代理上优化服务器端补丁的下载

自此版本开始,代理可以从次级节点下载服务器端补丁,而不仅仅是从主服务器下载,这在过去是无法实现的。

服务器端补丁主要用于代理无法在代理机器上找到 VCS 客户端可执行文件(例如,Git 或 Perforce)的情况。 在这种情况下,代理程序将请求服务器创建带有 VCS 更改的补丁,并将其发送给代理程序。 现在,如果您将 "VCS 仓库轮询" 和 "处理构建产生的数据" 的职责分配给次要节点,代理将能够同样从该节点请求补丁,这会显著减轻主服务器的负载。

针对 DSL-based 项目的更新

TeamCity Kotlin DSL 收到以下更新:

  • DSL 提供了一种替代方式,以管道式配置 构建链阅读更多)。

  • 您现在可以使用在 TeamCity UI 中配置的上下文参数自定义 DSL 生成行为(阅读更多)。

  • 如果为项目启用了 "将安全值存储在 VCS 之外" 选项,TeamCity 允许您在 版本设置 | Tokens 选项卡上查看所有项目令牌并生成新的令牌(阅读更多)。

实验性用户界面的新功能

TeamCity 2019.2 引入了重新设计的 构建详情代理 页面,以及其他 实验性功能

实验性构建详细信息页面

在我们重新思考显示构建详细信息的方法时,我们重新设计了 构建详情 页面,使其提供更好的可视化效果,并通过侧边栏快速访问所有其他项目。

实验性构建详细信息页面

您可以立即预览所有以前的构建及其详细信息,而无需离开当前构建页面:

构建趋势预览

可视化的构建时间线反映了每个阶段的持续时间,并标明构建中的问题:

构建时间线

点击任何构建阶段以打开构建日志中的相应行。 请注意,在新的用户界面中,即使是长日志,也可以直接在预览中显示,无需下载。

除了构建时间线和构建日志, 概述 选项卡还可以快速访问构建问题、测试、变更和依赖项。 相应的标签页也已更新,现在提供了新的功能:

  • 更改 选项卡显示了有关构建变更的更多信息。 您可以分别浏览用户和工件的更改,并可以选择性地显示构建设置中的更改。 点击任何更改以预览其详细信息。

    实验性更改选项卡

  • 测试 选项卡允许快速切换失败、忽略和成功的测试。 点击一个测试以查看其详情并分配一个调查。

    实验测试选项卡

  • 依赖 选项卡提供了三种显示构建依赖项的替代模式:可视化时间线、结构化列表和构建链。

    实验性依赖项标签页

实验性代理页面

实验性的 支持人员 页面在处理大量代理时加载更快,并允许快速切换代理详细信息。 您可以使用侧边栏来浏览 agent pool 的层次结构,并按名称搜索 agent 和 pool。 报告 部分提供了每个池中运行、空闲和断开连接的代理的统计信息。

实验性代理页面

实验性用户界面的其他新功能

  • 两个构建的比较
    通过 比较构建功能,您可以从同一配置中选择两个构建,并并排查看其参数、修订、统计信息和测试的相关信息。 这使得监控更为便捷,特别是在多个用户管理和监测构建时尤其有帮助。 例如,如果一个构建在项目代码中没有变更但由于未知原因失败,您可以将此构建与上一个成功的构建进行比较,分析它们的差异以找到失败的最可能原因。
    要将一个构建与另一个构建进行比较,请打开该构建的 操作 菜单,点击 比较对象 ,然后选择一个用于比较的构建。

  • 构建列表中的扩展构建预览
    TeamCity 现在允许您直接在构建列表中预览最重要的构建结果。 在 构建配置主页 页面上,点击列表中的构建行以查看其详细信息。

  • 收藏项目部分
    我们已迁移了 项目 部分,该部分可快速访问您最喜欢的项目。

  • 重新设计的更改弹出窗口
    构建变更现在按时间顺序排序,并按代码变更和工件依赖项变更分组。 您也可以按照作者筛选改动,并且切换显示在构建配置设置中所做的更改。

  • 关于构建排队原因的信息
    如果一个构建在队列中停留时间过长,您现在可以通过在 趋势 或构建列表中预览构建时点击 "队列中" 标签来查看延迟的原因。

其他改进

  • 已为工件依赖项、重试触发器以及 Pull Requests 构建功能添加了 分支过滤器

  • Dockerfile 更改的自动检测:一旦 Docker Compose 构建运行程序在代理上创建了 Docker 镜像,它就会存储在此代理上,以供后续构建使用。 现在,TeamCity 将自动检测用于构建镜像的 Dockerfile 是否有所更改,并将强制 Docker Compose 步骤重新构建此镜像。

  • 您现在可以强制执行 VCS 变更检查间隔 ,该间隔在 全局设置 中指定,作为服务器上所有 VCS 根的最小轮询间隔。 这样,项目管理员只能设置比默认间隔更大的间隔。 这有助于限制轮询请求的频率,从而减轻服务器的负担。

  • 已启用 "更改项目中的用户/用户组通知规则" 权限的项目管理员可以编辑分配给他们项目的用户和用户组的通知规则。

  • 现在,您可以重新运行个人构建,就像常规构建一样:打开已完成构建的上下文菜单,然后点击重新运行此构建。

  • TeamCity 可以自动管理 git fetch 进程使用的内存量。
    如果您之前使用过 teamcity.git.fetch.process.max.memory 内部属性来设定每个 VCS 根获取的可用内存量,现在您可以禁用它,将内存消耗的检测权委托给 TeamCity 服务器。 您可以通过 teamcity.git.fetch.process.max.memory.limit 属性来控制可用内存的限制。

  • 您可以为一个构建配置多个 SSH 密钥。 如果构建需要在多个外部系统或仓库中进行身份验证,那么这将是有用的。 在构建中使用多个 SSH 密钥:

    • 在项目级别:在 SSH Keys 中指定这些密钥。

    • 在构建配置级别:添加多个 SSH Agent 构建功能,每个密钥对应一个。

  • TeamCity 使用 改进的规则解决活动分支中分配的调查和解除静音问题和测试。 现在,它会等待所有活动分支中的构建问题(或失败的测试)得到修复,然后再取消静音或解决其调查。

  • 重试构建触发器现在可以触发具有相同修订版本的新构建,并将其置于队列顶部。

已解决的问题

已修复问题的完整列表

升级说明

从 2019.1.x 到 2019.2 的更改

以前的版本

TeamCity 2019.1 中的新功能

最后修改日期: 2025年 9月 3日