0

我们有一个 Azure Build Pipeline 正在构建我们的产品。我们最近迁移到自定义代理池,因此我们现在可以控制池中的虚拟机。我最近添加了一个代码签名步骤。此步骤是对所有二进制文件进行签名,并导致构建时间加倍。到目前为止,我还没有考虑过缓存,因为我们的完整构建运行只有大约 20 分钟。现在我们已经 45 岁或更长了。

我正在尝试考虑如何缓存,但如果我缓存签名的二进制文件,我还没有哈希或任何我可以与新建的未签名文件进行比较的东西。我可以缓存未签名的二进制文件和已签名的二进制文件,然后在构建后将未签名的二进制文件与刚刚构建的文件进行比较。对于匹配项,我可以从缓存中获取签名版本,而对于其他人则继续进行签名。

这似乎过于复杂。还有其他选择吗?

4

1 回答 1

0

Azure DevOps 提供的管道缓存可以通过允许在以后的运行中重用一次运行的输出或下载的依赖项来帮助减少构建时间,从而减少或避免重新创建或重新下载相同文件的成本。在每次运行开始时反复下载相同依赖项的情况下,缓存特别有用。

CI 和部署作业目前支持缓存,但不支持经典发布作业。

但是根据您的情况,尤其是 I don't have a hash yet or anything I can compare to the newly built unsigned files. 现金可能不适合此。

如果恢复和保存缓存的时间少于从头开始再次生成输出的时间,缓存可以有效地缩短构建时间。因此,缓存可能并非在所有情况下都有效,并且实际上可能对构建时间产生负面影响。

为了减少构建时间,期望改进托管构建代理的服务器的基础架构。您还可以尝试使用 并行作业来构建管道。

于 2020-11-02T10:07:24.213 回答