[rsproxy] Support uploading local files client.go: adds a CAS Client from remote-api-sdks, which shares the same gRPC connection as that used by the blob-uploader that was used for stdout bytes. Adds a queue for file upload requests. The CAS Client (fcas) works on hashing requested files in the background. Rename the old bare gRPC client for uploading blobs to 'bcas'. resultstore.go: adds a fileUploader callback, intended for enqueing file upload requests. Before completing the transformation of a ResultStore UploadRequest, make sure Files have been rewritten with URIs, waiting for results from digest computation tasks as needed. Test: run alongside ninja --resultstore_output Bug: 369980343 Change-Id: I9116e8b0a6a8815a22785e71ad65655d5554411c Reviewed-on: https://fuchsia-review.googlesource.com/c/rsclient/+/1342078 Reviewed-by: Jay Zhuang <jayzhuang@google.com> Commit-Queue: David Fang <fangism@google.com>
The rsclient repository contains tools that support the use of ResultStore services and API.
rsproxy acts as a bridge between build tools and the ResultStore service.
The first supported build tool is Fuchsia's fork of ninja.
rsclient builds with Bazel. We recommend using Bazelisk to use the version of Bazel currently supported by this code base.rsclient is supported for Linux, and is yet untested on other platforms.
Before working with the code base, we recommend installing the precommit hook once per git clone with:
./scripts/install_precommit.sh
This runs a variety of checks and automatic regeneration steps for you before committing local changes.
To build everything:
$ bazelisk build ...
To run tests:
$ bazelisk test ...
Not yet applicable.
Not yet applicable.