Accept DEPS and TEST_DEPS dataclass from recipes.

Also transcribe placeholder.py to adopt the new format for testing.

Bug:446922240
Change-Id: I472e86b8a51b3e186b7db2a25abedfe45a21e0e8
Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/recipes-py/+/8185031
Commit-Queue: Marc Jin <jmarc@google.com>
Reviewed-by: Robbie Iannucci <iannucci@google.com>
8 files changed
tree: 74667c1f521be77429a0948a4562739eca965ff8
  1. doc/
  2. infra/
  3. misc/
  4. recipe_engine/
  5. recipe_modules/
  6. recipe_proto/
  7. recipes/
  8. turboci/
  9. unittests/
  10. .editorconfig
  11. .gitattributes
  12. .gitignore
  13. .pycharm.vpython3
  14. .style.yapf
  15. .vpython3
  16. .vscode.vpython3
  17. AUTHORS
  18. codereview.settings
  19. CONTRIBUTORS
  20. GEMINI.md
  21. LICENSE
  22. OWNERS
  23. PRESUBMIT.py
  24. pyproject.toml
  25. README.md
  26. README.recipes.md
  27. recipe.warnings
  28. recipes.py
  29. SECURITY_TEAM_OWNERS
README.md

Recipes

Recipes are a domain-specific language (embedded in Python) for specifying sequences of subprocess calls in a cross-platform and testable way.

They allow writing build flows which integrate with the rest of LUCI.

Documentation for the recipe engine (including this file!). Take a look at the user guide for some hints on how to get started. See the implementation details doc for more detailed implementation information about the recipe engine.

Contributing

  • Sign the Google CLA.
  • Make sure your user.email and user.name are configured in git config.

Run the following to setup the code review tool and create your first review:

# Get `depot_tools` in $PATH if you don't have it
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git $HOME/src/depot_tools
export PATH="$PATH:$HOME/src/depot_tools"

# Check out the recipe engine repo
git clone https://chromium.googlesource.com/infra/luci/recipes-py $HOME/src/recipes-py

# make your change
cd $HOME/src/recipes-py
git new-branch cool_feature
# 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.