| .github | ||
| dist | ||
| src | ||
| .gitignore | ||
| action.yml | ||
| CHANGELOG.md | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
Rust Cache Action
A GitHub Action that implements smart caching for rust/cargo projects
Example usage
- uses: Swatinem/rust-cache@v1
Specifics
This action tries to be better than just caching the following directories:
~/.cargo/registry
~/.cargo/git
target
It disables incremental compilation and only caches dependencies. The assumption is that we will likely recompile our own crate(s) anyway.
It also separates the cache into 3 groups, each treated differently:
-
Registry Index:
~/.cargo/registry/index/<registry>:This is always restored from its latest snapshot, and persisted based on the most recent revision.
-
Registry Cache:
~/.cargo/registry/cache/<registry>:Automatically keyed by the lockfile/toml hash, and is being pruned to only persist the dependencies that are being used.
-
target:
./targetAutomatically keyed by the lockfile, toml hash and job, and is being pruned to only persist the dependencies that are being used. This is especially throwing away any intermediate artifacts.