If you're looking to develop for TestGrid, welcome!
While the front-end UI is not currently open source, it can be used as a service. If you would like to propose a UI change or feature, please file a bug describing how you would like the UI to behave.
While TestGrid configuration is located in YAML files, TestGrid doesn't natively
read YAML. Instead, it expects configuration data in config.proto
. This file
is commented, and should be treated as the authoritative "input" schema to
TestGrid.
config.proto
is generated primarily with
Configurator.
Updates to the testgrid.k8s.io config are automatically Configurated when a change is
merged.
You can convert a yaml file to the config proto with:
bazel run //testgrid/cmd/configurator -- \
--yaml=testgrid/config.yaml \
--print-text \
--oneshot \
--output=/tmp/config.pb \
# Or push to gcs
# --output=gs://my-bucket/config
# --gcp-service-account=/path/to/foo.json
For our production instance of TestGrid (https://testgrid.k8s.io), this file is read to a Google Cloud Storage (GCS) location, and read from there.
If you modify a .proto file, you'll also need to generate and check in the .pb.go files.
Run bazel run //hack:update-protos
to generate, and bazel run //hack:verify-protos.sh
to verify. This command requires python
to be installed.
Run bazel test //...
to run all unit tests in TestGrid. Note that this does not validate
the testgrid.k8s.io config; those tests are in bazel test //config/tests/testgrids/...