TeamCity On-Premises 2024.03 Help

构建缓存

构建缓存"功能允许构建配置发布在构建运行期间产生的特定文件(例如,下载的 npm 包或 Maven 本地仓库工件)。 发布的缓存可以在同一配置发布的后续构建中被重用,或者其他配置也可以重用。 这种技术优化并加速了构建程序。

常见信息

缓存发布者和消费者

您可以设置 Build Cache 功能以在两种模式中的任意一种中运行。

  • 初始构建缓存设置允许该功能下载在之前的构建中由相同功能发布的缓存。

  • 或者,您可以设置一个 Build Cache 功能以发布缓存,然后从另一个 Build Cache(来自不同的构建配置)下载它。 这种模式允许您设置“发布者”和“消费者”功能,以在不同的构建配置之间交换缓存。 缓存使用者功能的数量没有限制,但是,它们应该属于与缓存发布者相同的 项目。

尺寸限制

缓存被发布为 隐藏的工件,位于 .teamcity.build_cache 文件夹下。 要查看已发布的缓存,点击 显示隐藏的构建工件 链接在 制品标签页 上。

已发布的构件

由于缓存被发布为工件,因此受到您可以在 Administration | Global Settings 页面设定的 最大构建工件文件大小 设置的影响。

运算顺序

如果构建配置被设置为上传缓存,那么它会按照以下顺序排列其构建阶段:

  1. 解决工件依赖性问题

  2. 下载缓存

  3. 检出源代码

  4. 启动构建

在同一构建配置中发布和使用缓存

这个部分将会演示如何设置 Build Cache 功能,该功能允许构建配置重用其自身之前构建的缓存。

  1. 将构建功能添加到构建配置中,并为Cache Name指定一个唯一的名称。

  2. 由于我们希望此功能既能发布又能使用缓存,所以请将 Publish 和 Use Cache 设置都保持启用状态。

  3. 指定应被缓存的文件和文件夹的路径。 每个路径应从新的一行开始。 不支持通配符。 相对路径是相对于检出目录进行解析的。

    例如,要缓存由 npm install 或 yarn install 命令下载的 NodeJS 包,请在此字段中键入 node_modules/。

  4. 默认情况下,如果新构建的缓存与之前构建发布的缓存相同,则不会发布缓存。 如果您希望每个构建都上传缓存,取消选中 只有在改变时发布 设置。

  5. 保存设置。 在 Build Features 页面上,该功能的描述应该声明它发布和使用相同的缓存。

    构建缓存”功能描述
  6. 运行构建并确保所有缓存文件都在构建结果页面上以 ".teamcity.build_cache" 隐藏工件的形式可用。

  7. 为确认在之前的运行中发布的缓存是否被使用,再次运行构建,并检查构建日志中的相应消息。

在不同的构建配置之间交换缓存

在此设置中,“发布者”Build Cache 功能添加到一个构建配置中,发布其缓存,而“消费者”Build Cache 功能添加到另一个配置中,下载这个缓存。 下载的缓存被放置在与发布者的 发布规则 路径相匹配的相同位置。

只要您为属于同一项目的配置添加了功能,您就可以根据需要设置尽可能多的发布者和消费者功能。

设置发布者

  1. 将构建功能添加到构建配置中,并为Cache Name指定一个唯一的名称。

  2. 指定应被缓存的文件和文件夹的路径。 每个路径应从新的一行开始。 不支持通配符。 相对路径是相对于检出目录进行解析的。

    例如,要缓存由 npm install 或 yarn install 命令下载的 NodeJS 包,请在此字段中键入 node_modules/。

  3. 默认情况下,如果新构建的缓存与之前构建发布的缓存相同,则不会发布缓存。 如果您希望每个构建都上传缓存,取消选中 只有在改变时发布 设置。

  4. 取消勾选 Use Cache 复选框。

  5. 保存设置。 在 构建功能 页面上的特性描述应说明它只发布缓存。

    仅发布
  6. 运行构建并确保所有缓存文件都在构建结果页面上以 ".teamcity.build_cache" 隐藏工件的形式可用。

设置消费者

  1. 将构建功能添加到构建配置中,并指定与发布者特性使用相同的Cache Name。

  2. 取消勾选 Publish 复选框。

  3. 保存设置。 在 Build Features 页面上,该功能的描述应当说明它仅使用缓存。

    仅使用
  4. 运行一个新的构建,并检查构建日志以确保需要的缓存文件已经下载。

  5. 对于需要此发布缓存的每一个构建配置,请重复以上步骤。

参见

最后修改日期: 16日 7月 2024年