commit | d93bcdd661d27c0f32570c24c287781e2ed9bbbe | [log] [tgz] |
---|---|---|
author | Robert Iannucci <iannucci@chromium.org> | Wed Apr 10 20:48:28 2024 |
committer | LUCI CQ <infra-scoped@luci-project-accounts.iam.gserviceaccount.com> | Wed Apr 10 20:48:28 2024 |
tree | b19a27adc66db86e14ce8248e2ce5874bcf6c0b8 | |
parent | 09ec4880906a6aae1e8adc63212bd1259a817983 [diff] |
[config_types.Path] Refactor Path implementation. This CL significantly simplifies the implementation of the Path object by removing it's dependency on API, tightening the type and lifetime of it's global variables, making Path sanitize and normalize all incoming arguments, and removes the bogus 'config' for the path module, and makes Path objects no longer special 'config types'. The new implementation also correctly splits up incoming path arguments into pieces (so `a.join('some/thing')` and `a.join('some', 'thing')` now produce identical Paths). This also finally makes it possible to add a way to get a Path for an arbitrary string, known to the recipe to be an absolute string. This is implemented as `cast_to_path` in both the API and TestAPI subclasses here. Recipe-Nontrivial-Roll: build_limited Recipe-Nontrivial-Roll: fuchsia Recipe-Nontrivial-Roll: infra Recipe-Nontrivial-Roll: build Recipe-Nontrivial-Roll: chromiumos Recipe-Nontrivial-Roll: chrome_release Recipe-Nontrivial-Roll: pigweed Change-Id: I69c80bb40b3a62b78bb3873a807da08093d6c63f Bug: 329113288, 40270001, 40274272 Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/recipes-py/+/5121425 Reviewed-by: Rob Mohr <mohrr@google.com> Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
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.
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.