Dur*_*urn 7 caching rust rust-cargo azure-blob-storage azure-pipelines
我有一组 Azure 构建管道,用于编译 rust 项目,并且当前使用 blob 存储将.cargo和target文件夹存储为缓存。
在本地编译时,一旦第一次编译了二进制文件,后续的cargo build就不会再次编译依赖库/板条箱,而只是本地二进制文件,但是使用我当前的管道系统,在下载缓存并使用正确的目标文件夹后构建后,管道仍然下载并构建 crates。
这是我用于缓存和任何管道构建的 config.toml。
[build]
target-dir = "./target"
dep-info-basedir = "."
incremental = true
Run Code Online (Sandbox Code Playgroud)
在某些情况下,它减少了编译时间,但远没有我预期的那么多。我可以缓存更多文件夹以提高速度吗?是否存在货物正在检查并污染缓存的某些缓存标识符?
管道运行一个自定义的 xtask 二进制文件,该二进制文件执行许多任务,包括运行,cargo build --release这是否会导致问题?
您需要缓存target,~/.cargo/registry正如凯撒在上面的评论中提到的。
以下内容对我有用(文档):
- task: Cache@2
inputs:
key: '"cargo" | "$(Agent.OS)" | Cargo.lock'
path: $(Build.SourcesDirectory)\target
displayName: cache cargo build
- task: Cache@2
inputs:
key: '"cargo-registry" | "$(Agent.OS)" | Cargo.lock'
path: $(UserProfile)\.cargo\registry
displayName: cache cargo registry
Run Code Online (Sandbox Code Playgroud)