-
Notifications
You must be signed in to change notification settings - Fork 690
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cargo caching with forklift #2466
Conversation
Well done! 🙏 |
Any numbers on the speed up for the |
Unfortunately, not good enough. Build speedup is 5-25% (depending on the job). This is because the current version only caches crates from crates.io. There are still some issues with the substrate-wasm-builder cache |
And what is with path dependencies? That also doesn't work? |
For simplier repos (such as cargo) everything seems to be ok. But for polkadot-sdk I get errors E0460 (found newer version of crate) and E0463 (can't find crate). I'm still investigating if it is only substrate-wasm-builder crates problem. Right now I'm working on the idea that forklift may mess up cached artifacts with "real" target dir and builder "subtargets" under some conditions |
This PR adds cargo caching feature with custom 'forklift' tool
Forklift acts as RUSTC_WRAPPER, intercepts rustc calls and stores produced artifacts in S3 bucket (see forklift readme for detailed description)
All settings are made in
.forklift
job's before_script and affect all jobs that extend.docker-env
jobTo disable feature set
FORKLIFT_BYPASS
variable to true in project settings in gitlab