TeamCity 2024.12 中的新功能是什么
Pipelines 合并公告及主要 UI 更改
在更新后的 2024.12 TeamCity 服务器启动后几秒钟内,您会注意到的第一个显著变化是重新设计的 UI。 我们用一个简洁的侧边菜单替换了顶部导航栏,重新设计了面包屑导航,更新了项目和配置图标,并引入了其他视觉增强功能,以提供更清晰、更实用的体验。

尽管这些变化本身就很重要,但它们不仅仅是视觉上的更新——它们为另一个即将到来的重大变化奠定了基础:TeamCity 和 TeamCity Pipelines 的集成。
目前,TeamCity 专注于为复杂工作流提供强大的 CI/CD,而 TeamCity Pipelines 是一个面向小型团队的用户友好选项,注重可用性和直观的 UI。 然而,这种分离带来了显而易见的挑战:一些 TeamCity 用户希望获得 Pipelines 的简便性,而 Pipelines 用户有时会错过目前仅在 TeamCity 中可用的高级功能。
通过合并这两个产品,我们旨在消除这种困扰并提供统一的体验。 TeamCity 用户将能够选择创建一个简化的 Pipeline 以快速设置,或创建一个完全可自定义的构建配置以应对高级场景和复杂的构建链,从而确保为每位用户提供适当的灵活性。
我们鼓励您现在尝试 TeamCity Pipelines 并分享您的反馈。 您的见解对我们来说非常宝贵,因为我们致力于使这一过渡尽可能平稳且以用户为中心。
了解更多: 试用 TeamCity Pipelines | Pipelines Pulse | Pipelines 文档
将构建任务卸载到 Kubernetes
在传统的 TeamCity 模式中,您需要设置、维护和管理处理构建的构建代理。 这适用于云托管和本地代理。
从 2024.12 版本开始,您将能够选择另一种方式:将构建任务卸载到 K8s 集群。 设置新的集成并立即开始构建:我们的 K8s 执行器将根据构建参数和所需容器生成 pod 定义,并将其提交到 K8s 集群。 因此,您的集群将作为一个管理构建和“代理”生命周期的协调器。

了解更多: 执行模式:外部 Kubernetes 集成 | Kubernetes 连接
部分链执行
2024.12 版本引入了两个配置参数,这些参数接受上游构建的标签和 ID。 这样做可以让您运行构建链的一部分。

这些参数可以是配置的永久部分,也可以在需要运行特定子链时通过 运行自定义构建对话框偶尔添加。
此外,我们实现了 skipQueuedBuilds 服务消息,您可以从构建步骤发送该消息以取消已排队的下游配置的构建。
了解更多: 部分链执行
集中式可刷新令牌管理
在最近的版本中,我们在广泛的 OAuth 连接中引入了对可刷新访问令牌的支持。 这些短期令牌使 VCS 根、问题跟踪器和构建功能(如提交状态发布器)能够与 VCS 托管提供商进行身份验证。 虽然可刷新令牌是静态令牌或用户名/密码凭据的安全替代方案,但跟踪使用这些令牌的所有实体可能具有挑战性。
为了简化令牌管理,我们在项目设置中创建了 VCS 身份验证令牌 页面。 在这里,您可以查看、创建和撤销项目的可刷新令牌。

此外,我们用重新设计的控件替换了旧的 获取/获取新建 按钮。 这些更新的控件允许您从 VCS 身份验证令牌 页面复制现有令牌 ID,或直接生成新令牌。

了解更多: 管理可刷新访问令牌
拉取请求过滤器
从 2024.12 版本开始,TeamCity 分支过滤器支持 +|-pr: 语法。 此语法允许您创建细粒度的过滤表达式,通过多个参数(如用户角色、目标和源分支等)跟踪拉取请求。
新语法目前仅适用于触发器。 在设置触发器设置时,点击 分支过滤器 字段旁的魔法棒以调用表达式编辑器。

了解更多: 拉取请求分支过滤器
Perforce 集成增强
当 Perforce VCS 根配置为按标签(同步的标签/更改列表 设置)检出源代码时,TeamCity 现在会在新的
vcsRoot.{externalId}.changelist参数中记录修订号。 此项便利性改进使同步修订的清晰识别成为可能。添加了 新的 Perforce 特定服务消息。 此消息允许您手动回滚个人更改。
您现在可以使用常规
buildQueueREST API 端点 构建 Perforce shelved changelists。 以前,此功能仅通过专用的/app/perforce/runBuildForShelve端点可用。
一次批准多个构建
TeamCity 允许您在开始某些构建之前需要指定用户的明确许可。 需要批准的情况有两种:
以前,这两个选项都需要在链中单独批准每个构建。 从 2024.12 版本开始,点击 批准 现在可以一次性为链中的所有构建授予权限。

上传自定义 Kotlin 库
从此版本开始,您可以将自定义 Kotlin 库作为 .jar 上传到您的 TeamCity 服务器。

要在项目的 .kts 文件中使用这些库,请将 Maven 依赖项添加到所需的 pom.xml 中。
了解更多: 添加自定义 Kotlin 库
在容器内执行 Meta-Runners
从此版本开始, meta-runners提供 与容器相关的设置。 这些设置会传播到各个步骤,这意味着每个单独的步骤都可以在所需的 Docker/Podman 镜像中运行。

如果某个步骤有自己的容器设置,它将覆盖全局 meta-runner 配置。
了解更多: 在容器中启动配方
AWS 集成增强
AWS 云配置文件
Amazon EC2 云配置文件将不再使用访问密钥或默认凭据提供程序链,而是通过 TeamCity AWS 连接进行身份验证。 此更改将所有身份验证设置整合到一个可以跨多个功能(云配置文件、 S3 工件存储、 AWS 凭证 构建功能等)共享的单一连接中。
现有连接将保留传统身份验证,但建议迁移到基于连接的访问。 新的 EC2 云配置文件将仅支持新的身份验证方法。
AWS 代理性能
我们重新设计了 AWS EC2 托管构建代理的逻辑,从而显著提升了性能。 请参阅此博客文章了解更多信息: 提升 TeamCity AWS 代理性能。
性能增强
在此版本中,我们彻底改进了获取构建列表和项目树的内部逻辑。 结合前端优化,此升级为管理大型 TeamCity 实例和广泛项目设置的用户带来了显著的 网页核心指标改进。
杂项更改
TeamCity 服务器和代理现在都支持 Java 21。
EC2 托管代理现在 报告
system.ec2.instance-life-cycle参数,该参数允许您识别此代理是使用 Spot 实例还是按需 EC2 实例。制品迁移工具 现在支持迁移到 Microsoft Azure 存储和从中迁移。 此工具允许您轻松地将构建工件从一个存储转移到另一个存储。 请注意,您需要安装未捆绑的插件来设置 Azure 存储: Azure 工件存储。
在服务器启动期间写入
teamcity-server.log的所有消息现在都会复制到 teamcity-startup.log中。 此日志确保将主要启动事件记录到单独的文件中,这可能有助于排查服务器启动问题。HashiCorp Vault 连接不再提供允许在 TeamCity 无法检索 Vault 密钥时继续构建的设置。 从 2024.12 版本开始,此类构建将失败。
TeamCity 代理设置现在会自动传播到 原生 Git配置(如果尚未设置相应属性)。 以前,您需要手动配置它们。 HTTP 代理设置会在代理端和服务器端传播,而 SSH 代理设置目前仅在 TeamCity 服务器端传播。
TeamCity 指标集现在包括新的实验性指标:
升级说明
在升级之前,我们强烈建议您阅读有关版本 2024.07 相比 2023.03 中重要变化的信息。
已修复的问题
请查看 TeamCity 2024.07 发行说明 文章,以获取已实施功能和已修复问题的摘要。
路线图
参阅 TeamCity 路线图 ,了解未来的更新。
您的反馈至关重要
我们非常重视您的反馈,鼓励您分享您的想法和建议。 请查看此链接获取更多信息: 反馈。