TeamCity On-Premises 2026.1 Help

关联仓库

teamcity link 通过在仓库根目录写入一个小型 teamcity.toml 文件,将仓库绑定到一个或多个 TeamCity 项目和作业。 链接后, teamcity run startteamcity run watchteamcity job list 等命令会自动获取默认项目和作业——无需 --项目/--job 标志

teamcity.toml 旨在与你的代码一起提交。 它可在多台机器、CI 代理和 AI 编码代理之间移植,并支持按路径绑定和多服务器设置的单仓库。

关联仓库

从仓库根目录运行 teamcity link。 无标志时,会选取活跃服务器(参见 teamcity auth ),并交互式提示项目和默认作业:

teamcity link

如需跳过提示,可显式传递 ID:

teamcity link --project Acme_Backend --job Acme_Backend_Build

首次运行将创建 teamcity.toml。 后续运行会 upsert 匹配的 [[server]] 条目——未传递的字段会被保留。

从 git 远程自动发现

在 CI 或 AI 代理环境下无法提示时, --auto 会根据仓库的 git 远程推断绑定:

teamcity link --auto

CLI 会将你的 origin URL 与活跃服务器上的 VCS 根进行匹配,并选择项目(及默认作业),无需人工输入。 如已认证多个服务器,请传递 --server

teamcity link --auto --server https://nightly.example

--auto--项目--job--jobs 互斥。

teamcity.toml 文件

单个仓库和单台服务器的最小 teamcity.toml 如下:

[[server]] url = "https://teamcity.example.com" project = "Acme_Backend" job = "Acme_Backend_Build"

url 标识 TeamCity 实例; 项目工作 是在命令中未指定对应标志时所用的默认 ID。 使用 作业 (数组)来跟踪多个感兴趣的作业:

[[server]] url = "https://teamcity.example.com" project = "Acme_Backend" job = "Acme_Backend_Build" jobs = ["Acme_Backend_Build", "Acme_Backend_Deploy"]

teamcity.toml 是纯 TOML——你可以手动编辑,或用 cat teamcity.toml 查看,或用 rm teamcity.toml 移除。

单仓库:按路径作用域

在单仓库中,每个顶级目录通常对应 TeamCity 上的不同项目。 从子目录中运行 teamcity link 时,CLI 会将绑定作用域限定为该路径:

cd services/api teamcity link --project Acme_API --job Acme_API_Build cd ../web teamcity link --project Acme_Web --job Acme_Web_Build

生成的 teamcity.toml (始终写在仓库根目录)会将路径作用域分组到父服务器条目下:

[[server]] url = "https://teamcity.example.com" project = "Acme_Backend" # repo-wide default job = "Acme_Backend_Build" [server.paths."services/api"] project = "Acme_API" job = "Acme_API_Build" [server.paths."services/web"] project = "Acme_Web" jobs = ["Acme_Web_Build", "Acme_Web_Deploy"]

services/api 运行 CLI 命令时, services/api 作用域优先生效。 从 services/web/src 开始,将使用最深层匹配的作用域(services/web)。 从仓库根目录使用时,应用顶层字段。

如要在子目录内强制在顶级作用域写入,请传递 --scope=

teamcity link --project Acme_Backend --job Acme_Backend_Build --scope=

多个服务器

单个 teamcity.toml 可列出多个 [[server]] 条目——例如你的夜间流水线运行于另一实例时非常有用:

teamcity link --server https://nightly.example \ --project Acme_Nightly \ --jobs Acme_Nightly_Release,Acme_Nightly_Eval

每个 --server 都是独立 upsert 的:

[[server]] url = "https://teamcity.example.com" project = "Acme_Backend" job = "Acme_Backend_Build" [[server]] url = "https://nightly.example" project = "Acme_Nightly" jobs = ["Acme_Nightly_Release", "Acme_Nightly_Eval"]

通过 --server 在命令级别切换服务器,或设置 TEAMCITY_URL 以在整个 shell 会话期间生效。

解析级联

命令解析项目或作业时,CLI 会优先查找以下来源:

  1. 命令上的显式标志(--项目--job--server、…)

  2. TEAMCITY_* 环境变量

  3. 与活跃服务器 URL 匹配的 [[server]] 条目,根据当前工作目录逐层匹配到最深的 [server.paths."..."] 作用域

  4. 活跃服务器默认值(来自 teamcity auth login

这意味着 teamcity.toml 提供 默认值 ,但任何显式标志或环境变量仍优先生效。

一旦 teamcity.toml 就位,下列命令将采用已关联的默认值,无需每次调用都指定标识符:

  • teamcity run start — 使用默认 工作

  • teamcity run listteamcity run watchteamcity run log — 从链接接受 --job

  • teamcity job listteamcity job tree — 作用域限定为已链接的 项目

  • teamcity project viewteamcity project tree — 打开已链接的 项目

  • teamcity pipeline pullteamcity pipeline validate — 使用已链接的 项目

运行 teamcity <command> --help 可查看哪些标志可接受已关联的默认值。

2026年 8月 6日