[英]Azure Pipeline - how to save node-modules cache of multiple different projects
[英]How to effectively cache cargo/Rust projects in an Azure Build Pipeline
我有一組 Azure Build Pipelines 編譯 rust 項目,目前使用 blob 存儲來存儲.cargo
和target
文件夾作為緩存。
在本地編譯時,第一次編譯二進制文件后,后續cargo build
不會再次編譯依賴庫/ crates,只是本地二進制文件,但是使用我當前的管道系統,在下載緩存並使用正確的目標后要構建的文件夾,管道仍會下載並構建板條箱。
這是我用於緩存和任何管道構建的 config.toml。
[build]
target-dir = "./target"
dep-info-basedir = "."
incremental = true
在某些情況下,它減少了編譯時間,但沒有我預期的那么多。 我可以緩存更多文件夾以提高速度嗎? 是否有貨物正在檢查和污染緩存的緩存標識符?
管道運行自定義 xtask 二進制文件,該二進制文件執行許多任務,包括運行cargo build --release
這會導致問題嗎?
您需要緩存target
和~/.cargo/registry
,正如 Caesar 在上面的評論中提到的那樣。
以下對我有用( 文檔):
- 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.