[英]How to effectively cache cargo/Rust projects in an Azure Build Pipeline
[英]Why is cargo build cache invalidating?
我有一個准系統工作區項目:
.
├── build-debug.sh
├── Cargo.lock
├── Cargo.toml
├── common
│ ├── Cargo.toml
│ └── src
│ └── lib.rs
├── rs-test.iml
├── server
│ ├── Cargo.toml
│ └── src
│ └── main.rs
└── wui
├── Cargo.toml
└── src
└── lib.rs
rs 文件要么是空的,要么只是一個空的主函數。
服務器和 wui 依賴於 common: common = { path = "../common" }
。
通用項目有一個 crates.io 依賴項,我想是構建腳本或 proc 宏依賴項。
構建腳本:
cargo build -p wui --target wasm32-unknown-unknown
cargo build -p server
問題:
當我重建未更改的項目時,一些 wui 依賴項變得無效/重建,服務器也是如此。
任何一個:
它不再重建子項目。
這是貨物錯誤嗎? 我能做什么?
這可能不是貨物錯誤。 這里可能發生的情況是您的 crates.io 依賴項(您沒有提及它是什么,這可能很有用)根據目標架構具有不同的依賴項或功能。 因此,當您在構建 WASM 目標和主機目標之間交替時,正在重建內容。
也許在這種情況下停止使用 Cargo 工作區並分別構建服務器和 wui 會更好; 通過這種方式,您將為服務器和 wui 擁有單獨的target
目錄,這會占用一些額外的磁盤空間,並且非增量編譯需要更長的時間,但會阻止您在構建兩者時一直重建這些東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.