TeamCity 路线图

该页面包含我们正在为 TeamCity 积极开发或设计的新功能列表。 这会让您对未来一年中可能看到的公告有所了解。

此页面上的信息定期更新。 路线图功能的当前状态:

5
开发
6
设计
1
探索
0
EAP 中可用
TeamCity Cloud

TeamCity Cloud

为了使开发者无需安装和维护构建基础架构即可轻松创建优异软件,TeamCity Cloud 已开始研发 - 这是一种由 JetBrains 完全托管和监督的 CI/CD 解决方案。

了解详情

多服务器可扩展性

多服务器可扩展性

运行多个 TeamCity 服务器并让它们协同工作可以将 CI/CD 的性能和可靠性提升到新水平。 通过扩展辅助服务器的能力,我们正在改进 TeamCity 在群集环境中的性能。

了解详情

核心 CI 改进

核心 CI 改进

为了让您更好地控制 CI,我们正在开发各种新功能,让您更容易实现 DevOps 管道自动化并帮助您以更有效的方式组织开发流程。

了解详情

Kotlin DSL

配置即代码

我们很高兴越来越多的用户开始以代码的形式存储 CI/CD 配置。 在不久的将来,我们会让 Kotlin DSL 的表现力更强,并增加更多的入门方法。

了解详情

构建运行程序和集成

构建运行程序和集成

全世界的开发者都喜欢 TeamCity 与构建工具和外部服务的紧密集成,我们会竭尽全力以最好的方式提供支持。 在本节中,您可以了解我们计划添加的新集成。

了解详情

云功能

云功能

我们希望 TeamCity 能够提供您在现代工作流中所需的一切功能。 因此,我们正在开发一系列功能,让您可以更轻松地在云中设置和运行构建。

了解详情

新的 'Sakura' UI

新的 “Sakura” UI

我们持续打造快速、易于使用并让我们能够更快交付新功能的新 UI。 我们当前的重点是使 Sakura UI 支持经典 UI 的所有主要用例。

了解详情

TeamCity Cloud

开发

开发者必须能够在无需安装和维护构建基础架构的情况下创建优异软件。 这就是我们开发 TeamCity Cloud 的原因 - 这是一种由 JetBrains 完全托管和监督的 CI/CD 解决方案。 它拥有原始 TeamCity 的一切优势,还将在云中专用实例上运行您的构建和测试,与其他用户完全隔离。 对于当前用户,我们将提供一种将本地安装迁移到云解决方案的方法。

TeamCity Cloud 目前处于公测阶段,我们希望能够在 2021 年初公开发布。

注册测试版

多服务器可扩展性

运行多个 TeamCity 服务器并让它们协同工作可以将 CI/CD 的性能和可靠性提升到新水平。 通过使用新功能扩展辅助服务器的能力,我们正在改进 TeamCity 在群集环境中的性能。

全功能 UI

开发
为了更好地控制CI,当前辅助服务器的有限 UI 将替换为全功能版本,能够编辑构建配置、管理云代理并执行其他过去不可用的操作。 这将使您的团队能够在主服务器维护时继续使用 TeamCity。

构建队列处理

设计
我们的总体目标是让辅助服务器在各方面都与主服务器相等。 路线图的下一站是使辅助服务器能够处理构建队列并开始构建。

核心 CI 改进

触发定义的参数

开发

我们要实现的另一个主流功能请求是触发器定义的参数。 这将使您更好地控制构建和测试,并允许您根据触发原因以不同的方式运行。 该功能的一个典型用例是,当一个夜间构建被日程表触发时(但不是由其他触发器触发),自动发布该构建。

智能测试拆分

设计

您的测试越多,完成测试的时间就越长。 您经常会发现许多构建代理什么也不做,只是在等待某个特定代理完成测试。 为了解决这种情况,我们正在开发一项新功能,智能地将测试分为持续时间相近的几组测试,然后在多个构建代理上并行运行。 这样就能更快获得测试结果,让您多建少等。

无代理构建

设计

TeamCity 构建代理结合了其他 CI 所没有的功能和通用性。 但是,当他们使用外部工具时,这些功能仍未使用,因为一切都必须等到外部作业完成。 为了优化 TeamCity 在这些情况下的工作方式,我们希望实现一个新的“无代理构建”API,在不依赖 TeamCity 构建代理的情况下使用外部工具。 通过此 API 进行的所有作业将被视为 TeamCity 中的常用构建,并具有自己的报告、状态和历史。

在 2020.2 版本中,我们引入了无代理构建步骤。 此功能允许您在无代理模式下执行构建的最后步骤,释放构建代理并允许它运行其他已排队任务。 现在,我们正在收集有关此初始实现的反馈,并调查各种相关方案,以设计出完全无代理的构建实现。

我们期待您的意见! 请在相应的 YouTrack 问题中描述您自己的用例,说明您想如何使用上述无代理构建。

配置即代码

得益于 Kotlin DSL 的表现力,我们的用户真正开始以代码的形式存储 CI/CD 配置。 我们正在不断改进,以下是我们计划在不久的将来进行的主要变更。

以 DSL 的形式查看项目配置

开发

View DSL 按钮提供了一个学习在 Kotlin 代码中描述构建配置的好方法。 现在其仅适用于构建配置,如果您要为完整的项目编写配置,或者您正在寻找合适的代码进行特定配置,可能不太适用。 我们将在 TeamCity 的其他部分添加类似按钮,让您随时可以找到正确的方法来配置 VCS 根、清理设置或整个项目 - 使用 Kotlin 代码。

省略 DSL 代码中的 imports

设计

我们希望 Kotlin DSL 尽可能简短并富有表现力。 为了让您更轻松地在 Kotlin 中描述构建配置,我们将允许您省略 settings.kts 文件开头的 imports 部分。 这意味着 settings.kts 可以直接从 project {...} 部分开始,不需要您明确指定编译脚本所需的 imports。

禁用 UI 编辑

开发

TeamCity 可以让您根据喜欢的工作流以多种方式设置 CI/CD 管道。 您的项目可以通过 DSL、UI 或两者结合进行配置。 然而,将手动编辑与 DSL 更改混合在一起可能会导致很多混乱和版本问题。 为确保您的配置可预测且易于管理,一个新增选项将允许管理员在使用 Kotlin DSL 进行设置时禁止通过 UI 编辑项目配置。

构建运行程序和集成

全世界的开发者都喜欢 TeamCity 与构建工具和外部服务的紧密集成,我们会竭尽全力以最好的方式提供支持。 以下是我们计划添加的新功能列表。

JetBrains Space

JetBrains Space

设计

我们公司最近推出了新产品 Space - 一个带有整套现代软件开发工具的集成团队环境。 Space 提供了许多与 TeamCity 集成的机会:

  • 构建 Pull Request
  • 在聊天中发送通知,并生成待办事项列表
  • 与团队目录同步,并从 Space 继承项目权限
  • 还有更多

我们正在与 Space 团队紧密合作,寻找整合两种产品的最佳方法,我们计划在今年开始推出其中的一些整合。

云功能

云代理的持久缓存

设计

在云中使用 TeamCity 的团队必须有机会像使用本地安装一样快速完成构建。 持久云缓存将允许云构建代理快速地相互传输源代码、构建工件和各种包,从而节省大量时间和网络成本。

(更少的下载对地球有利:它可以节省电力并减少碳足迹。 因此,这一功能将让您和您的构建都更加绿色环保。)

新的许可选项

探索

我们有越来越多的客户愿意在云中运行构建代理,因为这可以在需要时快速增加交付管道的容量。 然而,目前的 TeamCity 许可政策具有限制性,因为它要求为用户只在高峰期使用的构建代理购买年度许可证。 为了解决这个问题,我们将重新思考如何在云安装中处理 TeamCity 许可。

尽管我们还不清楚如何做到这一点,但我们认为重要的是要宣布我们正在朝这个方向努力。 如果您有相关用例,欢迎在相应的 YouTrack 问题中分享。

新的 “Sakura” UI

开发

大多数开发者每天都会使用 CI/CD,我们希望提高它的实用性。 去年,我们推出了一个新的实验性 UI(代号 “Sakura”),它已经确实证明了自己的实力。 它速度快、功能强大且具有现代感,我们为它在如此短的时间内取得的地位深感自豪。 Sakura UI 的后续改进将涉及以下方面:

  • 静音和调查页面
  • 变更
  • 用户资料设置

许多用户问我们是否打算取消旧版 UI。

答案是 - Sakura UI 不会在短期内取代经典 UI。 在接下来的一年中,我们计划重点改进 Sakura UI 中已经实现的功能,直到功能均等并支持经典 UI 的所有主要用例。 这让我们能将其设为默认,但即使如此,我们仍会保留使用经典 UI 的选项。

我们很幸运有机会测试 JetBrains 中 UI 的每一个细微变化。 从个人开发者到 IntelliJ IDEA 和 Kotlin 等大型项目,数十个具有不同 CI/CD 实践的团队都在使用 TeamCity 的夜间构建。 经典的 UI 没有这样的机会:它在公司中自然成长,并由已有 10 多年历史的技术构建。 它在很久以前就达到了极限,我们觉得它现在阻碍了我们快速交付新功能。 这就是我们构建 Sakura UI 的原因,我们坚信它将为 TeamCity 和所有用户带来光明的崭新未来。