Set up recipe and various configs for git-repo

For running presubmit tests on

Google-Bug-Id: b/266734831
Change-Id: Id077d2e827ee5de24d68cab82759d3a54a316074
9 files changed
tree: 54ea1f5a10f8562b295410413cc90ce5a3df9587
  1. generated/
  2. infra/
  3. recipes/
  4. repos/
  5. .gitignore

LUCI Configuration

This repo holds all the configuration for LUCI, the CI system Gerrit uses. You can find recent verification runs and logs at


  • Recipe: a python script to verify a change, and a test for that verification
  • Builder: a recipe configured to run on a specific machine type
  • CQ Group: a watcher that triggers on new votes/patchsets on the specified repo+refs
  • CQ Tryjob Verifier: combines a CQ group with a builder to run a recipe when a new vote or patchset comes in


  • / overall starlark configuration for the entire host. It is also executable to generate the config data
  • /repos/*.star: repo-specific starlark configuration for builders, CQ groups, CQ tryjob verifiers, etc
  • /recipes/recipes/*.py: recipes for testing a change based on the repo
  • /recipes/ executes recipe tests and compares/generates expected JSON goldens. 100% coverage is expected.
  • /recipes/recipe_modules/: dependencies shared by modules
  • /recipes/*.expected/*.json: expected commands executed by the recipe
  • /infra/config/recipes.cfg: versions and URLs of external recipe dependencies


  • lucicfg - CLI tool to generate the configuration from the starlark scripts. To install, clone depot_tools.
  • python - Due to an ongoing migration, the script still relies on python 2.7, but the recipes themselves are written for python 3.

Imporant commands

Regenerate config data after making changes (lucicfg):

$ ./

Run recipe tests (python 2.7):

$ python recipes/ test run

Update recipe test goldens (python 2.7):

$ python recipes/ test train