[rsproxy] Re-pack ResultStore upload requests Adapt the UploadRequests from the input stream to the ResultStore API: a CreateInvocationRequest, followed by any number of UploadBatchRequests. cmd/rsproxy/main.go: remove unused flags, fields from partialInvocation() are be merged with the Invocation data coming from the input file/fifo to form a complete CreateInvocationRequest. internal/pkg/rsproxy/resultstore.go: The main Run() function is now responsible for splitting the initial CreateInvocation request from the UploadRequest stream. Forward remaining requests to the internal request queue, where they will be assembled into batches for the UploadBatch RPC. internal/pkg/rsproxy/server.go: Move ResultStore-related logic into ResultStore. Server now just forwards an io.Reader directly to the ResultStoreUploader via LoadUploadRequestsFromFile. Run() is now much simplified. Test: Running rsproxy alongside ninja connected by temporary mkfifo. Bug: 390427892 Change-Id: Ia596c5917f21fca3c51ccc388ffdc3d15e0cadc2 Reviewed-on: https://fuchsia-review.googlesource.com/c/rsclient/+/1342064 Commit-Queue: David Fang <fangism@google.com> Reviewed-by: Jay Zhuang <jayzhuang@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.