Recipes are a domain-specific language (embedded in python) for specifying sequences of subprocess calls in a cross-platform and testable way.
- User guide
- Recipes: public; internal.
- Recipe modules: public; internal.
-
README.md
This file!
-
bootstrap/
Bootstrapping and vendoring related code.
-
doc/
Documentation for the recipe engine (including this file!). Also includes
doc/recipes.py
, which is a file you can include in your repository to start using recipes. See the design doc for more detailed design information about the recipe engine. -
infra/
Chrome infra config files.
-
recipes.py
The main entry point to the recipe engine. It has many subcommands and flags; run
recipes.py -h
to see them. -
recipes/
Recipes in the recipe engine. These are either example recipes, or recipes which are used to test the engine (see run_test.py to see these run)
-
recipe_modules/
Built in recipe modules. These are very useful when writing recipes; take a look in there, and look at each of their
examples
subfolders to get an idea how to use them in a recipe. -
recipe_engine/
The core functionality of the recipe engine. Noteworthy files include:
package.proto
-- The protobuf file which defines the format of arecipes.cfg
file.third_party/
-- third_party code which is vendored into the recipe engine.recipe_api.py
-- The api exposed to a recipe module.unittests
-- Unittests for the engine.
There are also several files which correspond to a subcommand of recipes.py;
depgraph
,run
, andautoroll
are some examples. -
unittests/
Somewhat poorly named, these are higher level integration tests.
- Sign the Google CLA.
- Make sure your
user.email
anduser.name
are configured ingit config
.
Run the following to setup the code review tool and create your first review:
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git $HOME/src/depot_tools
export PATH="$PATH:$HOME/src/depot_tools"
git checkout -b work origin/master
# hack hack
git commit -a -m "This is awesome"
# This will ask for your Google Account credentials.
git cl upload -s -r joe@example.com
# Wait for approval over email.
# Click "Submit to CQ" button or ask reviewer to do it for you.
# Wait for the change to be tested and landed automatically.
Use git cl help
and git cl help <cmd>
for more details.