Build Cache
此功能仅在 Incredibuild 的 Enterprise and Business Plans 中可用,且当前的可用性有限。欲了解更多详情,请联系您的客户代表。
Build Cache 可重用先前输出部分,从而节省时间和资源。当您运行构建时,我们将输出存储在缓存中。当运行将来构建时,我们需要检查缓存以免重新生成构建部分未进行更改。
当居家办公时,这可能会产生重大影响,因为您可以重用存储在本地计算机的先前构建数据,从而在不影响带宽的情况下大幅缩短构建时间。
使用 Build Cache 需要提供每个 Initiator Agent 的特殊许可证。
概述
基于代码依赖关系,构建通常以树状结构进行处理。第 1 层的文件被用来创建第 2 层的文件,第 2 层被用来创建第 3 层的文件,以此类推,直到产生最终输出。
随着构建的处理,Incredibuild 会保存流程的细节,以供将来使用。由其他文件产生的每一个部分都作为一对输入文件和输出文件保存在缓存中。如果你在改变了一些文件后运行一个构建,Build Cache 可以使用相似的部分来阻止部分进程的运行。
支持平台
-
Build cache 只能与 Visual Studio 2017 及更高版本一起使用。
-
Build cache 只支持使用 cl 工具集(cl.exe)的 msbuild build。
这与 Helper Cache 有什么不同?
当 Helper 被赋予一项任务时,他们需要处理的文件被存储在 Helper Cache 中。如果发送的是完全相同的文件,Helper 仍然会再次处理,但文件不需要重新传输。
在 Build Cache 中,Initiator 识别已经处理过的文件,它们被完全跳过(它们不需要被重新传输或重新运行)。
如何分配 Build Cache 许可证
必须为每个要使用 Build Cache 的 initiator 分配一个特殊的 Build Cache 许可证。
-
转到 Coordinator > Agent List。
-
选择每个你想启用 Build Cache 的 initiator agent。
-
点击Actions >Build Cache License >Allocate License 。
注意: 你也可以使用每个代理旁边的选项 (...)菜单将许可证分配给单个 initiator。
如何在 Initiator Agent 上启用 Build Cache
除了分配许可证外,还必须为每一个将使用 Build Cache 的initiator agent 配置以下设置。
你可以启用 Build Cache,并在 Agent Settings > Build Cache 中调整设置。一旦启用,Build Cache 将用于您的所有构建,并且不能为个别构建禁用。
-
在 initiator 机器上,进入Agent Settings > Build Cache 。
-
转到 General 窗口。
-
点击 Enable Build Cache 。
-
转到 Build Cache > Database. 。
-
Build Cache 需要一个 Redis 数据库来存储元数据。你可以使用我们在安装期间自动安装在每个 Initiator 上的默认数据库,或者指定一个远程 Redis 数据库。
如果你使用的是远程数据库,请输入 address, port 和 password ,如果需要的话,以访问数据库。
-
无论你使用的是远程还是本地数据库,都要在 Folder 字段中指定位置。我们建议使用本地,而非远程网络文件夹以优化性能。
如果文件夹需要证书 ,指定用户名和密码 。
-
转到 Build Cache >File Cache 。这个区域包含了缓存文件本身。可以定义它们的位置、大小限制和任何必要的证书。大小限制应该是您计划运行的所有构建的输出大小的 2-3 倍,并且至少是 10GB。
你也可以在Coordinator 的 Agent List 中修改文件夹和缓存大小。选择一个 Initiator Agent,打开选项菜单,并选择 Build Cache Configuration 。这可以通过选择多个代理并使用 Actions 菜单来大规模地进行。
高级设置
-
列出缓存文件状态:列出在命令行中运行构建时哪些文件被缓存。
-
恢复缓存的进程输出:如果构建因为在 build cache 中被发现,致使它的一部分被跳过,则这个选项允许您仍在 console 中查看细节,如同它被完全执行一样。禁用它可以提高性能,但在某些情况下需要 console 输出。禁用时要谨慎。
-
清除缓存:同时清除数据库和 build cache 。由于这些项目是 Build Cache 功能的基础,我们不建议在正常情况下清除缓存。
验证 Build Cache 的有效性
使用 Build Cache 所节省的时间的细节将包含在你所有构建的输出中。这可以在 Build Monitor 的输出选项卡中看到,也可以在命令行中看到输出。
限制
-
目前,一次只能在一个构建上运行构建缓存。
-
如果缓存位置是在远程,则其必须位于共享可用磁盘空间数据的位置。