Build Chain(构建链)
构建链是由快照依赖关系连接的构建序列。 有时构建链被称为“管道”。 启用修订同步的快照依赖性链接的构建链的部分使用相同的源快照。
常见使用案例
指定构建链的最常见用例是在不同平台上运行您项目的相同测试套件。 例如,在进行发布构建之前,您需要确保在不同的平台和环境下测试能正确运行。 为此,您可以指示 TeamCity 首先运行测试,然后是集成构建,最后是发布构建。
让我们详细了解构建链机制是如何运作的。 当触发发布构建配置的依赖构建时,TeamCity 会进行以下操作:
解决发布构建配置快照所依赖的所有构建配置链。
检查所有依赖构建配置的更改,并在构建链中的第一个构建进入构建队列时进行同步。
将所有需要用特定修订版构建的构建都添加到构建队列中。
配置构建链
要在您的构建配置中指定依赖关系:
在 构建配置设置 页面上,选择 依赖项。
在 依赖关系 页面上,点击 添加新的快照依赖 链接。
请参阅 构建依赖项设置 以获取详细信息和示例。
从构建链中停止/移除队列中的构建
如果正在被停止或从构建队列中移除的构建是构建链的一部分,那么在注释字段下方会有一条消息:“此构建是构建链的一部分”。
如果构建链中有其他正在运行或排队的部分(即其他正在运行的构建或排队的构建,与执行中的构建相关联),这些构建将在标签“停止其他部分”下方列出。
如果用户有权停止列表中的构建,则其旁边有一个复选框。 如果停止当前构建肯定会导致列表中的构建失败(例如,如果列出的构建依赖于被停止的原始构建),则复选框默认为选中状态。
如果用户没有停止列表中构建的访问权限,复选框将不可见。
选择此复选框将选中的构建标记为从队列中停止/删除。
如果用户没有查看构建链中的某个构建的访问权限,那么该构建对用户完全不可见。 如果存在至少一个此类构建,会显示一个警告:" 您无权访问它的所有部分" 。 该条纹显示在消息 "此构建是构建链的一部分" 的正下方。
在所有其他构建链部分无法被当前用户查看的情况下,我们会显示一个带有警告的黄色条纹:" 您没有查看其其他部分的访问权限 "。
如果构建链中没有正在运行或排队的构建(即,构建链的所有其他部分已经完成),则不会显示额外信息。
禁用链各部分间的修订同步
您可以在推进构建时为构建配置的快照依赖性 禁用修订同步。
如果您从链部分 1 推进到链部分 2 的构建,并且部分 2 的第一个构建配置已禁用此选项,那么此选项将起作用。 在这种情况下,TeamCity 可以为部分 1 和部分 2 的构建使用不同的源代码版本。 请参阅构建依赖设置中的示例建立环境。
这在您需要运行一个依赖构建但不需要将其代码版本与其依赖项(链中的前序构建)同步时非常有用。
例如,您可以将较旧的构建提升为部署构建配置,该构建将使用最新的部署脚本运行。
在负载/接受测试中,当您将测试存储在版本控制系统中并经常更改它们来测试您的系统时,您不需要完全重建您的应用程序;相反,您可以直接从测试阶段开始选择链。
构建链视觉展示
基本上,每一个构建链都是一个有向无环图,也就是说它不能有循环。
构建链在 TeamCity 网络用户界面的各个地方都可见:
构建配置设置的依赖项页面
如果构建配置是构建链的一部分,相应的信息将在 Build Configuration Settings | Dependencies | Snapshot Dependencies中显示。 点击构建链路将在单独的窗口中打开构建链的预览及其配置。 预览显示了构建链的构建情况;配置了自动触发的构建将被标记这个图标: 。
项目主页和构建配置主页的构建链标签页
您可以在项目和构建配置页面上都查看构建链:只要配置了快照依赖项,这些页面上就会出现一个 构建链 标签页。
该选项卡显示了包含该项目或此构建配置的构建链列表,并具有过滤它们的能力。 请注意,构建链按照最后完成的构建的顺序进行排序,以便在列表的顶部显示具有最后完成构建的构建链。
饼状图图标显示了构建链中各状态的比例。 将鼠标悬停在饼状图上时,将显示详细信息:
当链展开时,还可以获得以下信息:
此构建链包含的所有构建
这些构建的状态:未触发,排队中,运行中或已完成及其详细情况
链显示实际执行顺序的构建,即最先开始的构建在左边。
在链中点击构建会高亮显示所选构建及其所有直接依赖项。 这个页面:
为链提供了简洁的表示方法:如果几个顶部构建触发了相同的依赖构建链,则 TeamCity 会显示一个包含几个顶部构建的构建链。
具有额外的显示选项:按项目分组和隐藏详情。
当在构建链中选择一个构建时,它将传递性地突出显示所有下游/上游构建。
在此页面,您还可以:
如果还有"未触发"的构建,继续执行链。 点击 Run ,链修订版上将启动新的构建,并与此链的构建相关联。
点击 打开带有预选构建链修订的 自定义构建对话框。 如果您想重新运行链中的某些构建,可以使用此操作。
构建结果页面的依赖项标签
如果依赖项已配置,您可以在构建结果页上,依赖项 标签中查看它们的详细信息。 此选项卡还显示间接依赖关系,例如,如果构建 A 依赖构建 B,而 B 又依赖构建 C 和 D,那么这些构建 C 和 D 就是构建 A 的间接依赖。
此选项卡还显示由构建链中的构建下载和交付的工件。 它还允许对构建进行分组/取消分组,并突出显示从以前的链中重用的构建(合适的构建)。