Open jclulow opened 1 year ago
@jclulow if I were interested in trying to implement this, is there a path that you particularly would prefer? that is, which way is most likely to get accepted?
Happy to chat through details as well.
Any update here? As I mentioned on https://github.com/oxidecomputer/omicron/issues/4471 -- this could easily shave ~10 minutes off most of our Omicron jobs
At present, buildomat targets provide a pristine environment each time a job is started. This is the best way to provide reliable, understandable results that can be reproduced or debugged after a build completes.
Unfortunately, some software build processes are truly staggeringly expensive. It would appear to be possible to, at the expense of making the build less hermetic, persist some portion of the build environment at the end of a successful build (but not the whole environment) to be unfurled on top of the pristine environment the next time around. This is obviously a facility that will require some care in order to avoid creating a lot of potentially quiet problems; some features we should consider are:
output_rules
directivesbmat
control program that is available inside jobs, which was added in https://github.com/oxidecomputer/buildomat/commit/6cd4797a814969f69872d0c34893eb8835d313f4bmat persist cargo-registry ~/.cargo/registry
bmat restore cargo-registry
and it would be unpacked to the location from which it was originally saved