commit | 0df5425581d5090c27a5b87a5d3c3de46cf8f59a | [log] [tgz] |
---|---|---|
author | Robert Iannucci <iannucci@chromium.org> | Thu Sep 10 16:41:10 2020 |
committer | LUCI CQ <infra-scoped@luci-project-accounts.iam.gserviceaccount.com> | Thu Sep 10 16:41:10 2020 |
tree | 0b57e743003f4381d04a5c3ce2df4f8a5527284d | |
parent | 947bd8d8a407054baf1e0074c818d0620d32cf1d [diff] |
[test] Filter stack traces by default. This change turns ====================================================================== FAIL (recipe crashed in an unexpected way) - recipe.testname ---------------------------------------------------------------------- Unexpected exception in RunSteps. Use `api.expect_exception` if the crash is intentional. File "/.../recipe_engine/internal/engine.py", line 554, in run_steps raw_result = recipe_obj.run_steps(api, engine) File "/.../recipe_engine/internal/recipe_deps.py", line 733, in run_steps properties_def, api=api) File "/.../recipe_engine/internal/property_invoker.py", line 89, in invoke_with_properties arg_names, **additional_args) File "/.../recipe_engine/internal/property_invoker.py", line 52, in _invoke_with_properties return callable_obj(*props, **additional_args) File "/.../path/to/recipes/recipe.py", line 39, in RunSteps raise Exception('wat') Exception: wat Into: ====================================================================== FAIL (recipe crashed in an unexpected way) - recipe.testname ---------------------------------------------------------------------- Unexpected exception in RunSteps. Use `api.expect_exception` if the crash is intentional. File "/.../path/to/recipes/recipe.py", line 39, in RunSteps raise Exception('wat') Exception: wat Which should be generally more useful for folks working with recipes. This filters out all wrapper functions and engine innards, leaving just the recipe and recipe_module code stack frames visible. This prints a reminder at the top of the test output with the flag to re-enable full stacks, too, which should be enough for folks who don't read the PSA :). This also leaves stacks alone in all non-test contexts, to help with debugging stuff in prod. R=yiwzhang@google.com Recipe-Nontrivial-Roll: build Recipe-Nontrivial-Roll: chromiumos Recipe-Nontrivial-Roll: depot_tools Recipe-Nontrivial-Roll: fuchsia Recipe-Nontrivial-Roll: infra Recipe-Nontrivial-Roll: build_limited_scripts_slave Recipe-Nontrivial-Roll: chrome_release Change-Id: I3ab64c1f2d7dc1a07c77d4776b01f7859c143cea Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/recipes-py/+/2394086 Commit-Queue: Robbie Iannucci <iannucci@chromium.org> Reviewed-by: Yiwei Zhang <yiwzhang@google.com>
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.