TeamCity 2024.07 中的新功能是什么
新的授权机制
体验无缝许可证管理,尽在我们最新的 JetBrains Account 集成中。 从 TeamCity 登录 JetBrains 账号并选择服务器许可证进行激活。 一旦连接,TeamCity 将自动接收所有服务器和代理许可证的更新,这意味着您将不再需要手动输入任何其他代理或服务器订阅更新的许可证代码。
新的机制不会影响现有的许可或购买政策,并且完全免费,无论您的服务器许可类型如何(包括免费级别的专业服务器)。 通过将您的服务器实例链接到 JetBrains Account ,所有 TeamCity 用户都能受益,从而使服务器管理员能够及时收到有关关键安全更新的电子邮件通知。
了解更多: 管理 TeamCity 许可证。
自定义版本设置位置
当您在项目设置的 版本化设置 页面启用同步时,您现在可以为远程存储的 Kotlin DSL 脚本和 XML 设置指定一个自定义位置。

这种灵活性对于使用 monorepos 的团队特别有益。 它允许多个独立的 TeamCity 项目在没有冲突的情况下以相同的代码库为目标,通过将项目设置存储在不同的自定义目录中,而不是默认的 .teamcity 文件夹。
此外,此功能使您能够在一个代码库中组织所有项目的版本化设置。 此精简方法通过将配置文件与您的主代码库分开,从而简化了 DSL 脚本维护并增强了安全性。
了解更多: 在版本控制系统中存储项目设置
在版本控制中存储服务器配置文件
从此版本开始,您可以将服务器的 <TeamCity Data Directory>/配置 目录内容存储在外部存储库中。 此设置允许您查看和调查服务器编辑的完整历史记录,并在这些配置文件遭到破坏时轻松恢复。
了解更多: 将配置文件上传到版本控制系统
VCS 集成增强
新的 GitHub Checks Webhook 触发器
2024.07 版扩展了 build triggers 的集合,新增了一个专门为通过 TeamCity GitHub App connections 设置的面向 GitHub 的构建配置设计的触发器。

新的触发器是一个集成解决方案,实施了双向 GitHub-TeamCity 集成:TeamCity 配置为所有推送运行构建,无论它们发生的频率如何,并将构建结果状态反馈给 GitHub。 有了这个触发器,您不再需要配置标准的 VCS trigger 或 提交状态发布器。
非递归子模块签出
子模块 设置在 Git VCS roots中允许您选择 TeamCity 是否应检出主存储库引用的子模块存储库。 “Checkout” 选项对应递归检出过程,使 TeamCity 获取整个代码库层次结构。
本版本新增的“非递归签出”选项允许您将子模块层次结构限制为 1。 在此模式下,TeamCity 仅检出主库直接引用的那些子模块。 子模块引用的低级存储库会被忽略。

了解更多: Git 常规设置
TeamCity 连接的安全增强
遵循我们识别和消除安全漏洞的承诺,我们已将新的 启用唯一的回调/重定向 URL 设置添加到以下 TeamCity connections中:
Azure DevOps OAuth 2.0
Bitbucket Server / Data Center
GitHub App(手动)
GitHub Enterprise
GitLab CE / EE
JetBrains Space(手册)

此设置会将唯一字符串添加到 callback/redirect URLs 中,以配置与版本控制系统的 OAuth 集成。 使用唯一的 URL 可以防止攻击者实施模仿真实服务器的恶意身份验证服务器——这是潜在的混淆攻击中使用的技术,混淆攻击会欺骗客户端应用程序泄露 VCS 身份验证代码。
对于所有新创建的 OAuth 连接, 启用唯一的回调/重定向 URL 设置默认启用。 如果您希望为现有连接启用它,请记住在 VCS 端更新修改后的 URL。
了解更多: 配置连接
从创建项目页面上传 SSH 密钥
当您 从 SSH URL创建一个新项目时,TeamCity 会显示可用 SSH 密钥的列表。 从这一版本开始,您可以直接从此页面上传新的keys。

此次小幅改进简化了工作流程,无需提前从 SSH Keys页面上传密钥。
了解更多: 将SSH密钥上传至TeamCity服务器
Sakura UI:问题页面重新设计
我们已对 问题 选项卡和 项目主页 进行了全面改进,以简化用户体验并促进构建失败的调查和解决工作流。

在后续的发布周期中,预计会更新与浏览、调查、静音和修复构建问题相关的其他 UI 元素。
了解更多: 处理构建和测试失败
构建运行器更新
引导步骤
您现在可以添加 build steps ,这些步骤会在构建开始后、在代理上检出源文件之前运行。

此增强功能允许您执行初步设置,例如准备所需的目录层次结构或确保检出目录中的所需文件未被其他进程锁定。
了解更多: 引导步骤
NUnit 和 NAnt 运行器弃用
版本 2024.07 引入了一个更新的 NUnit runner,与旧版 runner 相比,它不允许您选择 .NET Runtime 或 .NET Framework 版本。 如有需要,请使用 附加命令行参数 字段指定这些设置。 此外,更新后的 runner 不再支持过时的 NUnit 2.x.x 版本。
在 2024.07 版本中,更新和传统 runner 都可以正常使用,并可以从 Build Steps页面访问。 在接下来的发布周期中,预计会将旧版 runner 拆分并移至单独的插件。 完成后,您需要从 JetBrains Marketplace 手动 安装此插件以继续使用旧版运行程序。 因此,我们建议将您的项目迁移到更新的 NUnit 或常规 .NET runners。
另外,我们正在弃用 NAnt runner。 与 NUnit 不同,它没有更新的对应版本,一旦解包,将只能通过单独的 Marketplace 插件获取。
杂项更改
TeamCity 报告的 统计值列表现在包括 AllTestsDuration 值。
在第一次启动 TeamCity 服务器时弹出的数据库连接设置向导现在会根据选择的数据库类型安装以下 JDBC 驱动程序:
MySQL 数据库文件:
mysql-connector-j-8.3.0.jarMS SQL server:
mssql-jdbc-12.6.0.jre8.jar和sqlserver12-win-auth.jar进行身份验证。PostgreSQL:
postgresql-42.7.1.jar
反斜杠字符 (
\) 现在是默认的转义符号,使您能够在 功能分支规范中使用特殊字符。 此符号通常在 TeamCity 文档和支持工单中被推荐作为转义符号,您可能已经有类似如下的分支规范:#! escape: \ +:release-\(7.1\)这第一行不再需要,可以安全地删除,但即使您不删除,您现有的规范也仍然有效。
TeamCity 现在支持映射到多个工作场所位置的 Perforce 仓库(ditto mapping)。
版本控制系统标签 构建功能现在允许您指定一个字符串,该字符串应写入 Perforce 标签的描述字段。

TeamCity 指标 集现已包含另外四个实验性指标,允许您测量执行 版本设置 同步的任务数量。
executors_versionedSettingsUpdate_activeTasksexecutors_versionedSettingsUpdate_completedTasksexecutors_versionedSettingsUpdate_poolSizeexecutors_versionedSettingsUpdate_queuedTasks
此外,新
构建队列不兼容度量指标允许您跟踪不兼容当前任何 TeamCity 代理(包括现有的云配置文件)的构建数量。
升级说明
在升级之前,我们强烈建议您阅读有关版本 2024.07 相比 2023.03 中重要变化的信息。
已修复的问题
请查看 TeamCity 2024.07 发行说明 文章,以获取已实施功能和已修复问题的摘要。
路线图
参阅 TeamCity 路线图 ,了解未来的更新。
您的反馈至关重要
我们非常重视您的反馈,鼓励您分享您的想法和建议。 请查看此链接获取更多信息: 反馈。