TeamCity On-Premises 2025.07 Help

TeamCity 2021.2 中的新功能

双重身份验证

TeamCity 现在提供内置的两步验证用户认证(2FA)。 在您的 TeamCity 服务器上启用它会赋予其额外的安全级别。 用户需要通过两步来验证身份:提供常规凭证 plus 提交在其个人设备上生成的一次性密钥。

默认情况下,2FA 设置为 可选 ,但您可以将其设置为 禁用强制 ,具体设置在 管理 | 身份验证。 可选模式允许用户决定是否要为他们的帐户启用 2FA。 强制模式阻止用户在未经2FA验证的情况下访问 TeamCity。 启用此功能后,用户将获得为期1周的宽限期,期间他们该为自己的帐户设置2FA。

配置双因素认证

阅读如何在您的服务器上 启用 2FA 以及如何为您的用户帐户 进行设置

C# 脚本运行器

新的 C# 脚本运行器为您提供了一种在 C# 中自动化服务任务的便捷方式:准备构建环境,创建 OS 用户,报告给消息传递者等等。 这个运行器是一个不错的替代品,适合那些更熟悉 C# 的用户,比起 PowerShellKotlin

运行器可以在各种平台上启动 C# 脚本:Windows,Linux 和 macOS。 它需要 .NET 6.0,因此最简单的方法是在预装了 .NET 的 Docker 容器中启动它。 它还需要安装我们的 自定义 C# 交互式 shell 作为一个 代理工具

这个运行器的另一个优点是它能自动恢复您的脚本中引用的 NuGet 包。 默认情况下,TeamCity 会在 NuGet.org 上搜索包,但您可以指定其他目标源,包括私有的和 TeamCity-internal 的。

要配置 C# 脚本构建步骤,您只需输入脚本代码(或 .csx 文件的路径)以及其参数(如果需要)。 阅读关于其他设置的信息,请参考 这篇文章

配置 C# 脚本步骤

Perforce 集成:在搁置的文件上运行构建,向 Helix Swarm 报告状态等等

TeamCity 2021.2 为依赖于 Perforce Helix Core VCS的项目带来了大量增强功能。

在搁置的文件上运行构建

Perforce 允许用户在不将其检入 depots 的情况下临时共享已更改的文件。 这被称为 shelving。 现在,TeamCity 可以在这样的搁置文件上运行构建,让您在真实的构建环境中预先测试本地代码。

您可以在搁置的更改列表上运行构建:

在这两种情况下,TeamCity 都会运行一个 个人构建 ,这是一种用于处理不影响项目版本历史的变更的构建类型。

这些选项适用于所有使用 Perforce VCS roots 的构建配置。

在 P4 搁置文件上运行自定义构建

了解详情.

向 Perforce Helix Swarm 报告构建状态

如果在已搁置的变更列表上运行构建,TeamCity 可以自动将其状态报告给 Perforce Helix Swarm。 如果您使用此工具进行代码审查,就无需来回跳转到 TeamCity 仅仅为了检查构建是否成功。

为了设置这个集成,请在使用 Perforce VCS root 的构建配置中启用 Commit Status Publisher 功能:

为 P4 Helix Swarm 配置 Commit Status Publisher

配置此功能后,TeamCity 将会将构建状态的更新作为评论发布到 Helix Swarm 中的相关代码审查中:

在 Helix Swarm 中展示 TeamCity 构建状态

了解详情.

自动标签支持

TeamCity 可以为您的项目源分配自定义标签。 在使用 Perforce 的情况下, VCS 标签化 构建功能之前会创建 静态标签 ,这些都是本地工作空间的档案。 然而,似乎 自动 Perforce 标签在性能方面表现得更好,因为它们仅作为变更列表的别名使用。 自2021.2版本以来,TeamCity 默认发布自动标签。

如果您更喜欢使用静态标签,请阅读我们的 升级说明 ,其中包含了如何在您的服务器上撤销此更改的指导。

了解详情.

形参化连接变量

如果构建代理需要在一次构建运行期间连接到几个 Perforce VCS 根,它现在可以获取每个这些根的连接参数。

以前,如果您想在构建脚本中使用 P4PORTP4USERP4CLIENT ,您只能引用第一个 Perforce 根目录的变量。 现在,TeamCity 将这些变量存储为参数,因此您可以在脚本中单独引用每个根的参数: P4USERP4PORTP4CLIENT。 例如, env.P4PORT=%vcsRoot.<rootID>.port%

其中 rootID 是 VCS 根的外部 ID,已在其设置中指定。

了解详情.

JetBrains Space 集成:用户认证和从仓库创建项目

Space 是 JetBrains 的新型软件团队协作解决方案。 如果您的公司已经开始使用它,您现在可以:

  • 从 JetBrains Space 仓库中原生创建项目,构建配置和 VCS 根目录。

  • 允许用户使用其 JetBrains Space 帐户登录 TeamCity。

这个集成需要预先配置与您的 Space 实例的连接:请参见 如何做到这一点

从 JetBrains Space 仓库中创建项目,构建配置和 VCS 根

在连接配置完成后,JetBrains Space 按钮将在 TeamCity 的项目和构建配置创建向导中变得可用。 当您首次点击它时,您需要登录 Space 并授权 TeamCity 查看您的项目数据。

TeamCity 将会显示出您可以使用的 Space 仓库清单:

从 JetBrains Space 创建一个项目

选择一个代码库来创建项目或构建配置 —— TeamCity 将会扫描它并提出建议设置,如 此处所述。

使用 JetBrains Space 帐户在 TeamCity 中进行身份验证

要在您的服务器上激活 Space 认证,您需要执行以下步骤:

  1. 在根项目级别上配置与 Space 的连接。

  2. 管理 | 身份验证 中启用 JetBrains Space 身份验证模块。

因此,用户将在 TeamCity 登录页面上看到 JetBrains Space 图标,并可以点击它用 Space 帐户登录。

使用 JetBrains Space 登录 TeamCity

使用 Azure DevOps Services 帐户在 TeamCity 中进行身份验证

如果您的团队使用 Azure DevOps Services ,那么其成员现在可以使用他们的 Azure 帐户登录 TeamCity。

要在您的 TeamCity 服务器上启用此功能:

  1. 按照 此处所述,为您的 Azure DevOps Services 实例配置 OAuth 2.0 连接。

  2. 管理 | 身份验证 中启用 Azure DevOps OAuth 2.0模块。 为了进一步保护访问权限,您可以限制哪些 Azure 组织的成员可以访问 TeamCity:

在 Azure 中配置身份验证

现在,用户可以通过在登录页点击 Azure 图标并确认身份验证以登录 TeamCity。

用户界面改进

版本 2021.2 带来了以下 TeamCity UI 的改进:

  • 显示用户头像.

  • 显示待处理更改和更改详情 在实验性 UI 中。

  • 在构建链图上按项目分组构建的功能 在实验性 UI 中。

显示用户头像

用户头像现在会与用户名一同显示,无论是在经典界面还是实验性界面都会如此。 视觉图标可以帮助快速识别提交的作者。

在 TeamCity 中显示用户头像

您可以在您的用户个人资料设置中上传头像。

显示更改的实验性用户界面

在新 UI 中, 待处理的更改 选项卡和单个 Change(更改) 页面已完全重现。 他们拥有经典页面的熟悉布局,但提供了更好的外观和感觉。

待处理的更改 页面显示自上次成功构建以来提交到远程存储库的更改列表。

新的待处理更改标签页

单个 Change(更改) 页面允许您查看每个更改的详细信息,并显示在引入此更改时出现的失败测试和构建问题列表。

新的更改页面

在实验性构建链图中按项目分组构建

现在可以在实验性构建链图上按项目对构建进行分组。 这可以方便地概述一个大型管道。

要尝试此选项,请打开属于 的任何构建的结果,转到其 依赖 选项卡,并切换到 模式。

按链上的项目对构建进行分组

其他改进

OpenSSH 密钥支持

TeamCity 现在支持 OpenSSH 格式的密钥,包括 ECDSA 和 ED25519。 您可以将此类密钥上传到 TeamCity,并在配置 VCS roots 或在构建过程中运行 SSH agent 时重复使用它。

对此格式的支持也已在 TeamCity 2021.1.4 的错误修复版本中引入。

Kotlin DSL 更新

现在支持对众多项目和构建配置的设置使用 typed Kotlin DSL。 查看完整的改进列表 这里

在次级节点上暂停和恢复构建队列

在一个 多节点设置 中,次要节点相比主节点的功能有限,但我们正在努力使其功能最终与主节点相等。 此版本使得在次级节点上暂停和恢复构建队列成为可能。

将参数传递给选定的依赖构建

TeamCity 允许在链上传递构建参数:也就是说,链中的后续构建可以覆盖前一个构建的属性。 这让您能够编排灵活且适应性强的管道。 为了进一步提高灵活性,我们扩展了反向参数的语法以支持构建 ID 掩码。

以前,只能在特定构建中或一次性在所有先前的构建中重新定义属性。 现在,如果目标构建的 ID 具有通用的前缀或后缀,您可以指定一组目标构建:

reverse.dep.[prefix]*[suffix].<property_name>

在这里, 前缀 对应于目标构建 ID 的开始,而 后缀 对应于它们的结束。

阅读更多关于此语法的信息

在 ARM64 上自动检测 PowerShell

TeamCity 现在可以通过检查推荐的位置: ~/powershell/opt/microsoft/powershell/<版本>/ ,自动在 ARM64 系统中检测到 PowerShell。 要在此范围内添加自定义位置,您可以设置一个特殊的代理属性,如此处所述。

使用 cookies 更轻松地访问 API

禁用 cookies 已不再是从外部 HTTP 客户端访问 TeamCity 的必要条件。
以前,如果您需要发送启用 cookies 的 API 请求,就必须同时传递访问令牌和 CSRF 令牌。 现在,发送一个访问令牌进行身份验证就足够了。

更易定制的 CSP 头部

为自定义 Content Security Policy (CSP) 报头,该报头禁止从 TeamCity 下载未知的外部资源,现在只需要提供自定义部分,无需指定完整的报头值。 如果提供了完整值,只有不同的部分将被应用。

已解决的问题

参阅 TeamCity 2021.2 发布说明.

升级说明

在升级之前,我们强烈建议您阅读有关 2021.2 版本相对于 2021.1.x 的重要变化的内容。

以前的版本

路线图

参阅 TeamCity 路线图 ,了解未来的更新。

最后修改日期: 2025年 8月 12日