构建配置依赖项
实际的 CI/CD 流水线通常结合多个独立的阶段。 例如,“Build”、“Test”和“Deploy to Staging”配置(或作业)可以独立运行或按顺序运行。
TeamCity 提供了多种选项来创建这些独立实体之间的关系。
- Build Chain(构建链)
构建链是使用 快照依赖项互连的经典 TeamCity 配置集合。
快照依赖项是从右到左的关系。 例如,在“ A -> B ”链中,配置“B”依赖于配置“A”,因此“B”在“ A ”首先生成合适的构建之前无法运行。 “合适”构建的标准取决于您的设置,请参阅 合适的构建部分了解更多信息。 同时,“A”可以独立运行,而不会触发新的“B”构建。
对于关键任务场景,您可以设置依赖配置以始终强制生成新的上游配置构建,即使项目没有最近的更改。
- 管道
这是构建链的简化替代方案,其中作业代表流程的每个阶段。 对于较小的、不太复杂的工作流(整个流程大约 10 到 15 个阶段),这是推荐的选项。
与在构建链中链接的构建配置相比,流水线展示了以下差异:
您只能链接属于同一流水线的作业。 而构建链允许您链接完全独立的 TeamCity 项目所拥有的构建配置。
不支持需要手动配置的独立工件和快照依赖项。 当您选择一个应在当前作业之前运行的作业时,您可以立即选择是否导入其所有工件。
流水线会运行其所有作业,而不考虑它们的依赖关系。 构建链具有更多的自定义选项,并且可以 部分执行。
- 完成构建触发器
完成构建触发器建立从左到右的关系。 例如,您可以创建类似于构建链的“ A -> B ”序列,但有一个关键区别:“B”可以独立运行,而每个新的“ A ”构建会自动触发一个新的“B”构建。
完成构建触发器提供了一种简单但不灵活的方式来触发下游构建,通常可以被快照依赖项替代或补充。
- 构件依赖性
工件依赖项允许配置导入其他配置构建过程中生成的文件。 例如,“Delivery”配置可以将“Build”配置生成的文件(Docker 镜像、NuGet 包、HTML 文档页面等)部署到指定资源。
工件依赖项不会 非 在配置之间创建显式链接:两者可以独立运行,而不会触发彼此的构建。 如果您使用工件依赖项而没有相应的快照依赖项,依赖构建无法确保存在合适的工件来源(上游配置构建)。 因此,您可能需要设置工件依赖项以定位固定/标记的构建。
本节重点介绍构建链和制品依赖关系。 要了解更多其他选项,请参阅以下文章: