使用 TeamCity 进行持续集成
TeamCity 是一个持续集成 / 持续交付(CI / CD)服务器。
持续集成是一种软件开发实践,开发人员每天多次将代码更改提交到共享存储库中。 每次提交后都会进行自动构建,以确保新更改能够很好地集成到现有代码库中,并及早发现问题。
要了解持续集成的基础知识,请参阅 我们的网站。
tip
TeamCity CI/CD 指南 为您提供了关于使用 TeamCity 进行持续集成/持续交付的详细信息。
JetBrains TeamCity 是一款用户友好的持续集成(CI)服务器,面向开发人员和构建工程师 搭载专业服务器许可证,免费使用 ,并且易于设置!
这个视频概述了 TeamCity 的主要特性,并解释了 许可政策:
在不同的平台和环境上同时运行并行构建
优化代码集成周期,确保您的仓库中永远不会出现损坏的代码
查看智能测试重新排序的即时测试结果报告
运行 Java 和 .NET 的代码覆盖率和重复项查找器
定制构建持续时间、成功率、代码质量和自定义指标的统计数据
还有更多
要了解更多关于 TeamCity 主要功能的信息,请参考 JetBrains 官方网站。
TeamCity 不仅适用于管理员和构建工程师,也适用于开发人员。 观看此视频,了解一些其标志性功能:
支持的平台和环境的完整列表可在此处 这里 查看。
这个部分描述了主要的 TeamCity 概念。
TeamCity 构建系统 由 服务器 和 生成代理 组成。
概念 | 描述 |
---|---|
Build agent(构建代理) | 一个实际执行构建过程的软件片段。 它的安装和配置与 TeamCity 服务器是分开的。 代理可以安装在单独的机器上(物理或虚拟),它可以运行与服务器相同的操作系统(OS)或不同的操作系统。
|
TeamCity 服务器 | 服务器 本身 不会运行构建或测试: 服务器的任务是监控所有连接的构建代理,根据兼容性要求将 排队的构建分配给代理,并报告结果。 有关构建结果的所有信息(构建历史以及除工件和构建日志之外的所有与构建相关的数据)、VCS 更改、代理、构建队列、用户帐户、用户权限等都存储在数据库中。
|
Project(项目) | 一个 TeamCity 项目对应于一个软件项目或软件项目的特定版本/发布。 一个项目是一系列的 build configurations 的集合。 |
Build configuration(构建配置) | |
VCS root(VCS 根) | 一组版本控制设置(源路径、用户名、密码、 签出模式及其他设置),定义了 TeamCity 如何与版本控制系统(VCS)通信以监控更改并获取构建的源代码。 |
Build step(构建步骤) | 待执行的任务。 TeamCity 提供了多个内置的 构建步骤 ,可实现与特定构建工具(如 Ant、Gradle、MSBuild 等)、测试框架(例如 NUnit)或代码分析引擎的原生集成。 因此,您可以在单次构建中拥有多个步骤,并按顺序调用测试工具、代码覆盖率,例如,编译您的项目。 |
Build trigger(构建触发器) | 一条在某些事件中启动新构建的规则。 例如,每当 TeamCity 检测到配置的 VCS roots 发生 变更 时, VCS 触发器 将自动启动新的构建。 |
Change(更改) | 您引入的任何源代码的修改。 如果一个变更已被提交到版本控制系统,但尚未包含在构建中,那么它被认为是某个构建配置的待定项。 |
Build(构建) | 在代理上执行的 CI/CD 任务。 它包含一个或多个步骤,可以执行任何服务任务:编译、测试、部署、生成报告等等。 术语 build 既可能指的是构建的实际过程,也可能指构建的结果。 构建被触发后,它会被放入 构建队列中,并在有兼容的代理可用时启动。 在构建完成后,构建代理将 构建工件 发送到服务器。 |
Build queue(构建队列) | 一份已触发且等待启动的构建列表。 TeamCity 将在构建代理变为空闲状态时立即将它们分发给 兼容的 构建代理。 在代理开始执行时,队列中的构建任务会被分配给代理;在构建等待在构建队列中时,不会预先进行任务分配。 |
Build artifacts(构建工件) | 由构建产生的文件,例如,安装程序,WAR 文件,报告,日志文件,在它们可供下载时。 |
为了了解服务器与代理之间的数据流、传递给代理的内容、TeamCity 如何以及何时获取结果,让我们来看一个简单的构建生命周期。

TeamCity 服务器检测到您的 VCS 根目录(仓库)发生了变化。
服务器将此更改存储在数据库中。
附加到构建配置的触发器,检测数据库中的相关更改,并启动构建。
触发的构建将出现在构建队列中。
构建已分配给一个空闲的兼容构建代理。
代理执行在构建配置中描述的构建步骤。 在执行步骤时,代理向 TeamCity 服务器报告构建进度。 它实时发送所有的日志消息、测试报告、代码覆盖率结果,因此您可以实时监控构建过程。
构建完成后,代理会将构建工件发送到服务器。
Thanks for your feedback!