Conversation
birchmd
left a comment
There was a problem hiding this comment.
Thanks for looking into this! I think this is definitely a step in the right direction!
| mv -n target/debug/* ~/build-cache/aurora-engine/debug | ||
| mv -n target/release/* ~/build-cache/aurora-engine/release |
There was a problem hiding this comment.
I don't think no-clobber will be good enough because we may want to overwrite some files that are updated sometimes. To be honest I'm not 100% sure on this because I don't know exactly how rust compilation artifacts are represented. Regardless, I think rsync might be a better choice here.
I also think it would be good to update the whole target directory, not just debug and release because there are some other build artifacts we care about in target not under those directories (e.g. solidity build artifacts and wasm build artifacts).
There was a problem hiding this comment.
I've came to the exactly same conclusion.
Artifacts in debug in release are suffixed with some hash, so I assumed that compiler kinda only creates artifacts with new hash instead of overwriting existing ones. But it seems to me that it's not true, because cleaning build-cache and starting from scratch gives the same time result :(
So this new solution doesn't help at all, you are right. I'll delete it.
I'm now thinking about implementing the same thing that we had in actions/cache, but saving cache locally, and without using compression. I'll do this in another commit. Thanks for details!
birchmd
left a comment
There was a problem hiding this comment.
It's not obvious to me that this will be faster because even though they are now running in parallel, they are also now building from scratch. But it probably doesn't hurt and I assume you'll bring in a new caching solution in a new PR.
Please also merge in develop and revert my needs change since it will not be needed now without the caching.
7a70ba3 to
b1f60c3
Compare
* JSON: fix bugs and add unit tests. (#141) * Add storage layout debug support for `EvmErc20.sol`. (#178) * ERC-20: forbid using invalid NEP-141 AccountID for mapping. (#179) * Add EIP-2930 support. (#181, #182) * Migrate all workflows to self-hosted runners. (#185) * Speed up the workflow using build caching. (#189) * Use the new math API host functions. (#190) * Fix `clippy::enum_variant_names` warning. (#192) * Add different networks to the Makefile. (#193) * Update the network status in the README. (#194) * Remove the toolchain installation step in workflows. (#195) * Run all tests for all networks in CI. (#196) * Optimize for performance instead of code size. (#197) * Parallelize the test suites. (#198) * Add build-caching to the testing workflow. (#201) * Refactor tests to use Signer. (#203) * Add options to the bench profile. (#204) * Remove a duplicate test. (#205) * Add a sanity test for access list handling. (#206) * Update nearcore to the latest branch. * Add feature gates to the SDK's new host functions. Co-authored-by: Ahmed Ali <ahmed@aurora.dev> Co-authored-by: Dmitry Strokov <dmitry@aurora.dev> Co-authored-by: Evgeny Ukhanov <evgeny@aurora.dev> Co-authored-by: Joshua J. Bouw <joshua@aurora.dev> Co-authored-by: Kirill <kirill@aurora.dev> Co-authored-by: Michael Birch <michael@aurora.dev>
target/releaseandtarget/debugare not actually concurrency-safe, my bad