1

背景: 管道缓存允许存储一个文件夹并在下一次构建时重新使用它,因为某些键、分支和其他东西不匹配。对 node_modules、nuget 包和 Git LFS 很有用,但也适用于构建

我在管道缓存文档中找不到任何内容。

即使构建失败,我也想保存缓存,用于增量构建或 Git LFS 检出,例如以下场景:

  • 新功能分支签入
  • 一个大的重构,因此有很多变化
  • 一些测试失败,因此不存储缓存
  • 修复它们是微不足道的,并且需要重新编译,但是整个构建需要重新运行整个管道失败。

示例列表如下:

- task: Cache@2
  inputs:
    key: 'yarn | "$(Agent.OS)" | yarn.lock'
    restoreKeys: |
       yarn | "$(Agent.OS)"
       yarn
    path: $(YARN_CACHE_FOLDER)
  displayName: Cache Yarn packages

但只有在整个管道成功时才会缓存。

4

1 回答 1

3

即使步骤失败(如测试),我如何存储 Azure DevOps 管道缓存?

经过一段时间的调查和讨论,恐怕没有这样的任务/功能来存储 Azure DevOps 管道缓存,即使一个步骤失败。

根据文档管道缓存,此任务用于通过允许在以后的运行中重用一次运行的输出或下载的依赖项来帮助减少构建时间,从而减少或避免重新创建或重新下载相同文件的成本。

它不解析文件或构建日志。所以,即使我们缓存了失败管道生成的文件,我们也无法使用那个没有正确生成或者下次没有生成的文件。在失败的构建中提取正确的信息似乎非常困难。

希望这可以帮助。

于 2020-06-29T09:53:24.707 回答