1# infra/config folder 2 3This folder contains WebRTC project-wide configurations for Chrome infra 4services, mainly the CI system ([console][]). 5 6`*.cfg` files are the actual configuration that [LUCI][luci-config] looks at. 7They are in *protocol buffer text format*. For example, 8[cr-buildbucket.cfg](cr-buildbucket.cfg) defines builders. 9 10However, they are all automatically generated from the [Starlark][] script 11[config.star](config.star) that defines a unified config using **[lucicfg][]**. 12The main body of the config is at the bottom of the file, following all the 13helper definitions. 14 15`lucicfg` should be available as part of depot_tools. After editing 16[config.star](config.star) you should run `lucicfg generate config.star` to 17re-generate `*.cfg` files. Check the diffs in generated files to confirm that 18your change worked as expected. Both the code change and the generated changes 19need to be committed together. 20 21## Uploading changes 22 23It is recommended to have a separate checkout for this branch, so switching 24to/from it does not populate/delete all files in the master branch. 25 26Initial setup: 27 28```bash 29git clone https://webrtc.googlesource.com/src/ 30``` 31 32Now you can create a new branch to make changes: 33 34```bash 35git new-branch add-new-builder 36# edit/generate files 37git commit -a 38git cl upload 39``` 40 41Changes can be reviewed on Gerrit and submitted with commit queue as usual. 42 43### Activating the changes 44 45Any changes to this directory go live soon after landing, without any additional 46steps. You can see the status or force a refresh of the config at 47[luci-config][]. 48 49[console]: https://ci.chromium.org/p/webrtc/g/ci/console 50[luci-config]: https://luci-config.appspot.com/#/projects/webrtc 51[starlark]: https://github.com/google/starlark-go 52[lucicfg]: https://chromium.googlesource.com/infra/luci/luci-go/+/master/lucicfg/doc/ 53