内容提要
在GameDev Day 2026上,TeamCity工程师Artem Rokhin演示了如何从Rider借助TeamCity CLI和MCP排查CI问题。示例中Unity游戏本地运行正常,但预发布环境缺少背景,构建却显示成功。他用CLI查看日志,发现构建参数gameBuildFlavor被误设为diagnostic,在YAML中改为game并提交,触发新流水线;随后通过MCP让AI代理分析原因并跟踪部署,最终验证背景恢复。他建议记录关键参数、校验取值并增加冒烟测试。
延伸解读
构建成功不等于部署正确
文章中的案例显示,TeamCity 构建显示成功,但预发布环境的游戏缺少背景。这说明构建状态只反映流水线执行结果,不保证部署后的实际表现。排查时应先确认部署对应的源构建和版本,再检查日志与配置,而不是仅凭绿色构建就认为一切正常。
CLI 与 MCP 的分工
TeamCity CLI 用于直接查看运行列表、日志和配置,适合快速定位具体参数值;MCP 则让 AI 代理访问构建日志和查询信息,辅助分析原因并跟踪新部署。两者并非替代关系:CLI 提供精确证据,MCP 帮助串联信息,但最终仍需人工核对日志、代码和部署结果。
修复后要验证实际行为
修改 YAML 中的 gameBuildFlavor 并提交后,新流水线会自动触发。文章强调,由于原构建已经成功,仅凭新流水线再次成功不足以证明问题解决。应打开新的预发布地址,重复之前暴露问题的操作,确认背景恢复,并与本地正常版本对比,才能确认修复有效。
把排查经验转化为防护措施
文章建议记录影响游戏输出的关键参数,在构建脚本中校验允许的取值,并在取值异常时尽早失败;同时增加针对该问题的冒烟测试或视觉检查。这些措施能把一次人工排查转化为可重复的防护,降低同类配置错误再次进入预发布环境的风险。
Q&A
如何从 Rider 中使用 TeamCity CLI 排查 Unity 构建问题?
在 Rider 终端安装 TeamCity CLI(macOS 用 brew install jetbrains/utils/teamcity,Windows 用 winget install JetBrains.TeamCityCLI),然后运行 teamcity auth login --server <你的TeamCity地址> 登录。用 teamcity run list --job <作业ID> --limit 5 列出最近运行,用 teamcity run view <构建ID> 查看详情,用 teamcity run log <构建ID> 查看日志。日志查看器支持按 / 搜索,用 n 或 N 切换匹配项。
演示中 Unity 游戏在预发布环境缺少背景的原因是什么?
构建参数 gameBuildFlavor 被错误地设为了 diagnostic,而预期值应为 game。该参数在流水线的 YAML 配置中定义,diagnostic 值对应了缺少背景的版本。构建虽然成功,但参数错误导致部署的游戏缺少背景。
如何通过 MCP 让 AI 代理帮助分析 TeamCity 构建问题?
首先在 TeamCity 创建仅限相关项目的只读访问令牌。然后在 Rider 中打开 Settings | Tools | AI Assistant | Model Context Protocol (MCP),添加 HTTP 连接,配置 URL 为 https://<你的TeamCity地址>/app/mcp,并在 headers 中添加 Authorization: Bearer <令牌>。如果使用 Claude Agent,还需在 Settings | Tools | AI Assistant | Agents 中启用 Pass custom MCP servers。之后在 AI 聊天中选择 Claude Agent,向代理描述症状和构建 ID,要求它检查构建详情和日志并解释原因。
修复配置后如何跟踪新的部署并验证结果?
提交 YAML 配置更改后,TeamCity 会检测到仓库变化并自动触发新的流水线运行。可以用 CLI 命令 teamcity run watch <新部署构建ID> --logs 实时查看部署日志,或让 AI 代理查询流水线状态并在部署成功后返回预发布环境 URL。部署完成后,打开该 URL 并重复之前暴露问题的操作,确认背景已恢复。
为了更容易排查类似问题,可以采取哪些改进措施?
建议:1) 在日志中记录所选的构建风味(flavor)和其他影响游戏输出的设置,便于查找;2) 在构建脚本中验证预发布构建允许的风味值,当值不符合预期时让运行尽早失败;3) 针对出问题的行为增加检查,例如加载相关场景的 WebGL 冒烟测试或对部署游戏进行视觉检查。从能捕获当前问题的缺失检查开始改进。
使用 TeamCity CLI 和 MCP 排查 CI 问题需要哪些前提条件?
需要:在 Rider 中打开的 Unity 项目;一个构建并部署该项目的 TeamCity 流水线,且其 YAML 设置存储在仓库中;能够访问该流水线的构建详情和日志;本机安装 TeamCity CLI;对于 AI 部分,需要在 Rider 中激活支持 MCP 的代理(如 Claude Agent)并拥有 TeamCity MCP 端点的访问权限。演示使用 TeamCity Cloud,本地部署用户可使用 2026.2 版本作为基线。