How to effectively clean target folder for CI caching · Issue #5885 · rust-lang/cargo (original) (raw)
I have a workspace repository with several crates in it (> 10). A clean build of all of them takes about 10 minutes on Travis, which is why I want to cache the target/
folder.
The problem is, the target folder gets quite big (~ 1.7GB) so it takes also about 3 minutes to upload the cache to S3 after the build.
The question is: How can I clean the target
folder from any artifacts generated by my own code?
If I can achieve that, then the target
folder would only have the artifacts of all the dependencies in it. As long as they don't change, Travis would not have to re-upload the cache. At the same time, rebuilding only the workspace crates takes only 30 seconds.
I have already tried several things:
cargo clean -p
for every workspace package- Delete all files in
target
that mention a workspace crate's name
None of the above were enough in order to get the target
folder into a state where NOTHING changes between two builds.
I couldn't really understand the layout of the target
folder: The artifacts of dependencies seem to be mixed up with those of the workspace crates. Is there some documentation available on how the target folder is structured?