TestGrid stores its configuration, state, and other information in cloud storage encoded via these protocol buffers.
Protocol buffers can be read using the proto compiler protoc
. Be sure your
working directory is this repository.
This example uses gsutil to read a Configuration from Google Cloud Storage. Then, it uses protoc to decode it.
gsutil cat gs://example-bucket/config | protoc --decode=Configuration pb/config/config.proto
You need to pass protoc the proto name and file used to encode the file.
These components generally generate these types of protos:
Component | Message | Source |
---|---|---|
Configurator or Config Merger | Configuration |
config.proto |
Summarizer | DashboardSummary |
summary.proto |
Updater | Grid (see Reading a Grid) |
state.proto |
The Updater will compress its state as well as encoding it. To read it, you'll need to do one of the following:
- In Go: Use DownloadGrid() or
zlib.NewReader(reader)
- In shell: Use a script that will uncompress zlib, then pipe that result to
protoc
gsutil cat gs://example-bucket/config | protoc --decode_raw
The result will use message numbers instead of message names. For example, 1
instead of test_groups
If you want to change one of the .proto files in this repository, you'll also need to regenerate the .pb.go files. Do so with this command:
bazel run //hack:update-protos