commit | c0fee8dd7b652cc5490937ff0993ebfe578228f3 | [log] [tgz] |
---|---|---|
author | Garrett Beaty <gbeaty@google.com> | Wed Mar 20 23:49:50 2024 |
committer | LUCI CQ <infra-scoped@luci-project-accounts.iam.gserviceaccount.com> | Wed Mar 20 23:49:50 2024 |
tree | 7569ac324da95e0596db6de871acd04f74f5a431 | |
parent | bae1abb253be8f7487dab188abae9810ac06f373 [diff] |
Revert "[recipe_engine/path] Make use of checkout based Paths a hard error." This reverts commit bae1abb253be8f7487dab188abae9810ac06f373. Reason for revert: Breaks chromium android orchestrators, example: https://ci.chromium.org/ui/p/chromium/builders/try/android-x86-rel/188889/overview Original change's description: > [recipe_engine/path] Make use of checkout based Paths a hard error. > > This changes config_types.NamedBasePath to raise a ValueError if > anything, anywhere, attempts to 'resolve' (i.e. render to string) > a Path using a 'checkout' dynamic path. > > All downstream repos tracked by the try builders on the recipes-py > repo ( and which have autorollers set up) should already be > compatible with this change. > > Practically, this is a tests-only impact - attempts to use checkout > based Paths in production flows would end up with nonsense paths > such as "None/path/to/thing". > > If any other recipe repos are impacted by this, the options for > remedy are as follows: > > 1. (Preferred) Stop using checkout based paths - they are > effectively a magical global variable and are more trouble than > they are worth. Instead, just construct, and pass around, Path > objects (which are always absolute paths). However, this > suggestion is not always practical for established codebases, > which leads to the second remedy. > > 2. If dropping use of checkout based paths is too hard in the > short term (which is likely), you can add something like the > following to the top of your test recipe's RunSteps method: > > api.path['checkout'] = api.path['start_dir'] > > This will cause all uses of e.g. `api.path['checkout']` to > resolve to `api.path['start_dir']`, and you will no longer see > ValueErrors (or invalid paths starting with 'None'). > > R=bpastene, bryner, sshrimp > > Bug: 329113288 > Change-Id: I3c229e9dbc2e6a531528bed716b0516abbd5f6ba > Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/recipes-py/+/5378475 > Reviewed-by: Struan Shrimpton <sshrimp@google.com> > Auto-Submit: Robbie Iannucci <iannucci@chromium.org> > Commit-Queue: Robbie Iannucci <iannucci@chromium.org> Bug: 329113288 Change-Id: I315370b129adac8863f80742acae2f6ebf74b6cb Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/recipes-py/+/5382052 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Garrett Beaty <gbeaty@google.com> Commit-Queue: Robbie Iannucci <iannucci@chromium.org> Reviewed-by: 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.