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:
zlib.NewReader(reader)protocgsutil 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