Skip to content

Draft: Cache-only execution through buildbox-run-hosttools

Tristan Maat requested to merge tlater/recc:tlater/local-execution-client into master

This is a continuation of !269 (merged) (#68 (closed)).

This implements local execution with BuildGrid/buildbox/buildbox-run-hosttools, which will be used instead of simply failing if the user specifies a remote cache but not a remote runner.

This was also discussed on ticket #68 (closed), but is a bit more controversial than !269 (merged), since this may poison the cache. This should probably be behind a compilation flag, or at least less easily triggered.

Note: This branch must be used with commit 655a7273780e59ee3dd1a50e21de3d3bcc16a561 or later of buildbox-common.

Todo:

  • Launch a localcas with recc and enable this in buildbox-run
    • This seems to be necessary at least for performance reasons.
  • Work out why our build results are not currently pushed to the cache
    • I believed that this would be handled by buildbox-run, but it doesn't seem to work in practice.
  • Figure out a better way to test local/remote execution
    • Currently we're mocking execution actions by just giving the execution a fake digest. This is cool, but doesn't really work anymore since the buildbox-run interface needs a full-fledged action, and we don't want to round-trip.
  • Figure out how to implement skipCache for the localexecutionclient
    • This may need support for split remotes in buildbox-common's CLI for buildbox-run, and then an implementation in at least buildbox-run-hosttools. Unsure if this is maybe already supported somehow.
  • Hide feature behind compilation flag
Edited by Tristan Maat

Merge request reports