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)
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