TeamCity On-Premises 2025.07 Help

创建和编辑管道

管道是以用户为中心的简化替代方案,用于 TeamCity 2025.07 及更新版本中提供的传统 构建配置构建链。 虽然仍处于早期访问阶段,并且由于潜在问题不建议用于复杂设置,但它们未被标记为实验性功能,可以安全地用于较小、需求较低的项目的生产环境。

管道与构建配置和链的比较

在我们深入创建管道之前,了解构建配置和管道之间的差异以及何时使用每种方式非常重要。 请注意,一旦创建,您无法将管道(或其任何作业)转换为构建配置,反之亦然。 有关更多信息,请参阅 限制和特别说明 部分。

父项目

构建配置和管道都归 TeamCity 项目所有。 每个项目可以拥有无限数量的配置和管道。

子项目
  • 一个构建直接拥有其构建步骤。

  • 一个管道拥有作业,而作业又拥有常规的构建步骤。

支持的 VCS 类型
  • 经典的 TeamCity 构建配置支持 Git、Subversion、Mercurial、TFS 和 Perforce,并与主要的 VCS 提供商(如 GitHub、GitLab、Bitbucket、Azure 等)集成。

  • TeamCity 管道提供与 GitHub、GitLab 和 Bitbucket Cloud 的内置集成。 其他 Git 仓库可以通过直接 URL 连接。 目前不支持 Subversion、Mercurial、TFS 和 Perforce。

执行模式
  • 管道总是从头到尾运行,执行所有作业,除非因编译失败或连接问题等错误中断。

  • 构建配置支持 条件步骤执行。 例如,您可以添加一个仅在前一步失败时运行的步骤。

依赖
  • 目前,管道仅支持同一管道内作业之间的依赖关系,无法链接成更大的序列。

  • 构建配置可以在不同的 TeamCity 项目之间形成 构建链

配置即代码

管道和构建配置都可以将其设置存储为代码,与您的项目源代码一起存放。 这两种实体都支持分支设置,这意味着每个仓库分支可以有自己的配置文件。

  • 构建配置将其设置存储为 XML 或 Kotlin DSL 格式。 您无法从 TeamCity UI 编辑这些文件。

  • 管道将其设置存储为 YAML,可以直接在 TeamCity 中编辑。

Kotlin DSL 支持计划在未来的管道版本中提供。 然而,目前没有为构建配置添加 YAML 支持的计划。

技术所限
  • 构建配置是 TeamCity 的核心组件,提供了广泛的功能和自定义选项。

  • 在 TeamCity 2025.07 引入的管道专注于提供设计 CI/CD 工作流的最直观方式。 然而,目前它们缺少了构建配置中的一些功能。 例如,它们不支持大多数 构建步骤 ,也没有额外的 构建功能

总之,尽管管道和构建配置同样属于项目,但它们满足了不同的需求。 管道非常适合较小项目中较为简单的 CI/CD 工作流(通常最多 10-15 个构建)。 请改用构建配置,如果:

  • 您的项目涉及超过 10-15 个顺序构建的复杂工作流。

  • 您是一位经验丰富的用户,需要管道尚未提供的高级功能(例如 构建审批)。

  • 您需要对哪些构建链配置运行、何时运行以及如何运行进行精细控制。

创建和设置管道

要将管道添加到项目中,请使用项目标题或 TeamCity 侧边栏中的 + 按钮。

项目标题中的创建按钮

TeamCity 将要求您选择一个将由此管道处理的远程存储库:您可以选择现有的 Git VCS 根 、受支持的 VCS 托管连接 ,或手动输入 Git URL。 默认分支和分支规范遵循与常规构建配置相同的规则,有关更多信息,请参阅 默认分支通用规范语法。 请注意,如果您选择现有的根,分支设置将被禁用——修改根设置以编辑它们。

管道分支规范

每个新管道都有一个空作业。 您可以点击作业图块查看其设置,或点击相应区域添加新作业。

主流水线视图

要查看全局管道设置,请点击可视化编辑器中的高亮区域。

管道设置

要按所需顺序排列管道作业,请选择一个作业并在 依赖 部分中检查其上游作业。 您还可以使用可视化编辑器从一个作业侧拖放一条线到另一个作业侧。

创建作业依赖

有关基本操作的更多信息,请参阅 TeamCity Pipelines

作业输出

管道旨在简化用户体验,并以更易于访问的方式呈现 TeamCity 概念。 一个关键示例是它们如何处理与最终用户和下游作业共享的构建结果。

在经典 TeamCity 中,构建过程中生成的文件和计算的参数大多是分开处理的。

管道通过让您在单一、集中界面中管理工件和参数,提供了更高的透明度。 点击作业以打开其设置,并展开 作业输出 部分。 从这里,您可以将任何参数或文件标记为输出。

IMAGE

参数

作业输出 设置中定义的参数与构建配置中支持的 输出参数相同。 例如,以下标记演示了一个具有三个参数的作业:

  • FORMAT 在其父作业脚本中用于设置 DATE 参数。 它们都未被共享。

  • DateOutput 是一个输出参数,用于公开 DATE 参数。

Job1: name: Calculate date parameters: env.FORMAT: '%%-d %%B, %%Y' env.DATE: 'null' steps: - type: script script-content: |- DF=$(date +"$FORMAT") echo "Date is $DF" echo "##teamcity[setParameter name='env.DATE' value='$DF']" output-parameters: DateOutput: '%env.DATE%'

现在,任何下游作业都可以通过 job.<source_job_ID>.<parameter_name> 语法使用 DateOutput 值。

Job2: name: Print date dependencies: - Job1 steps: - type: script script-content: 'echo "Today''s date is: %job.Job1.DateOutput%"'

共享文件

???

依赖

管道中重新设计的另一个经典 TeamCity 概念是依赖关系。 在管道中, 快照工件依赖合并为一个选项。 点击作业以查看其设置,选择应先于它的作业,并决定是否希望此作业导入它们的输出。

IMAGE

您还可以通过点击可视化编辑器中的作业链接选择是否导入文件。

IMAGE

Webhook

经典 TeamCity 支持两种检测存储库更改的方法:周期性轮询和 Webhooks。 虽然 Webhooks 提供了接近即时的更新并降低了服务器负载,但它们需要手动设置。 有关更多信息,请参阅 收集更改 部分。

管道默认使用 Webhooks 作为轮询机制的更快、更高效的替代方案。 当您通过连接创建管道时,TeamCity 会自动在您的存储库设置中注册一个 Webhook。 如果 Webhook 被移除或未能传递更新,轮询将作为后备机制。

将运行状态发布到 VCS

提交状态发布器 是最受欢迎的 TeamCity 构建功能之一,用于将构建状态传回 VCS 端。 如果您通过连接创建管道,此集成将自动可用。

使用 CSP 创建管道

下图说明了报告到 GitHub 上存储库页面的 TeamCity 运行状态。

GitHub 上的 TeamCity 运行状态

您可以点击状态图标以打开详细描述。 详情 链接会引导您到 TeamCity 服务器上的相应管道运行。

详细运行信息

要禁用此集成,请点击管道以编辑相应的存储库设置并关闭 发布状态到存储库

编辑存储库设置

限制和特别说明

TeamCity Pipelines 处于早期访问阶段,虽然基于核心 TeamCity 功能构建,但目前缺少经典构建配置中可用的一些功能。 我们计划扩展管道工具集,并在未来版本中添加最受欢迎的功能。

构建步骤

TeamCity 管道作业支持三个专用构建步骤: MavenGradleNode.js

虽然经典构建配置中的其他步骤类型尚不支持,但 脚本 步骤(相当于经典 TeamCity 中的 命令行 )提供了一个灵活的替代方案。 例如,您可以添加一个脚本步骤来运行 dotnet build 命令,而不是使用 .NET 构建步骤。

连接

TeamCity Pipelines 当前支持 GitHub OAuthGitLabBitbucket Cloud 连接。

请注意,您无需配置连接即可创建管道,您可以 从任何 Git 存储库 URL创建。

VCS 根

管道在内部使用 VCS 根,但呈现的是简化的 仓库 部分,而不是直接暴露 VCS 根设置。 因此,清理和检出策略、自定义轮询间隔以及子模块处理等选项无法通过管道 UI 配置。

但是,您仍然可以在经典 TeamCity UI 中创建和配置 VCS 根,然后从此根创建管道。

构建功能

管道旨在提供设置 CI/CD 例程的最简单、最用户友好的方式。 为了支持这一目标,我们正在努力将关键功能直接集成到管道中,避免需要单独配置的 构建功能

例如,当使用连接时, 提交状态发布器 自动启用 ,并且注册表连接在管道和作业设置中作为 集成 进行管理(而不是通过单独的 Docker 注册表连接NPM Registry Connection构建功能)。

添加管道集成

虽然传统的构建功能在管道中不受支持,但我们致力于通过更简化的替代方案将最常用的功能引入管道体验。

触发器

TeamCity Pipelines 当前支持两种类型的 触发器 ,允许 CI 例程自动启动:

两者都在管道设置的 自动运行流水线 部分中配置。

在管道中配置触发器

其他触发器类型(例如 完成构建触发器GitHub 检查触发器 )目前不受支持。

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