From 970bf5ad2cd0d54f9c8fb5600cf5a799e2b75e4b Mon Sep 17 00:00:00 2001 From: recipe-roller Date: Fri, 11 Sep 2020 17:10:47 +0000 Subject: [PATCH] Roll recipe dependencies (trivial). This is an automated CL created by the recipe roller. This CL rolls recipe changes from upstream projects (recipe_engine) into this repository. recipe_engine: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f6fc910b1f87c6d0d8757b9d40557a1caf75d506 f6fc910 (iannucci@chromium.org) [recipes.py] Use exec on *nix and ignore signals on Windows. More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug. TBR=iannucci@chromium.org Recipe-Tryjob-Bypass-Reason: Autoroller Bugdroid-Send-Email: False Change-Id: I5d578c9f7bbcfcba798914943e70707280da2c78 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2405639 Reviewed-by: Recipe Roller Commit-Queue: Recipe Roller --- infra/config/recipes.cfg | 2 +- recipes/README.recipes.md | 40 +++++++++++++++++++-------------------- recipes/recipes.py | 24 ++++++++++++++++------- 3 files changed, 38 insertions(+), 28 deletions(-) diff --git a/infra/config/recipes.cfg b/infra/config/recipes.cfg index dba8a293ae..9585686d19 100644 --- a/infra/config/recipes.cfg +++ b/infra/config/recipes.cfg @@ -16,7 +16,7 @@ "deps": { "recipe_engine": { "branch": "master", - "revision": "02cdffb4e155ba27e2c90142998faaeb1d788b0a", + "revision": "f6fc910b1f87c6d0d8757b9d40557a1caf75d506", "url": "https://chromium.googlesource.com/infra/luci/recipes-py.git" } }, diff --git a/recipes/README.recipes.md b/recipes/README.recipes.md index e46b5a0491..f869462f94 100644 --- a/recipes/README.recipes.md +++ b/recipes/README.recipes.md @@ -1061,23 +1061,23 @@ Move things around in a loop! — **def [RunSteps](/recipes/recipe_modules/windows_sdk/examples/full.py#13)(api):** -[recipe_engine/recipe_modules/assertions]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/02cdffb4e155ba27e2c90142998faaeb1d788b0a/README.recipes.md#recipe_modules-assertions -[recipe_engine/recipe_modules/buildbucket]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/02cdffb4e155ba27e2c90142998faaeb1d788b0a/README.recipes.md#recipe_modules-buildbucket -[recipe_engine/recipe_modules/cipd]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/02cdffb4e155ba27e2c90142998faaeb1d788b0a/README.recipes.md#recipe_modules-cipd -[recipe_engine/recipe_modules/commit_position]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/02cdffb4e155ba27e2c90142998faaeb1d788b0a/README.recipes.md#recipe_modules-commit_position -[recipe_engine/recipe_modules/context]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/02cdffb4e155ba27e2c90142998faaeb1d788b0a/README.recipes.md#recipe_modules-context -[recipe_engine/recipe_modules/cq]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/02cdffb4e155ba27e2c90142998faaeb1d788b0a/README.recipes.md#recipe_modules-cq -[recipe_engine/recipe_modules/file]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/02cdffb4e155ba27e2c90142998faaeb1d788b0a/README.recipes.md#recipe_modules-file -[recipe_engine/recipe_modules/json]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/02cdffb4e155ba27e2c90142998faaeb1d788b0a/README.recipes.md#recipe_modules-json -[recipe_engine/recipe_modules/milo]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/02cdffb4e155ba27e2c90142998faaeb1d788b0a/README.recipes.md#recipe_modules-milo -[recipe_engine/recipe_modules/path]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/02cdffb4e155ba27e2c90142998faaeb1d788b0a/README.recipes.md#recipe_modules-path -[recipe_engine/recipe_modules/platform]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/02cdffb4e155ba27e2c90142998faaeb1d788b0a/README.recipes.md#recipe_modules-platform -[recipe_engine/recipe_modules/properties]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/02cdffb4e155ba27e2c90142998faaeb1d788b0a/README.recipes.md#recipe_modules-properties -[recipe_engine/recipe_modules/python]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/02cdffb4e155ba27e2c90142998faaeb1d788b0a/README.recipes.md#recipe_modules-python -[recipe_engine/recipe_modules/raw_io]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/02cdffb4e155ba27e2c90142998faaeb1d788b0a/README.recipes.md#recipe_modules-raw_io -[recipe_engine/recipe_modules/resultdb]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/02cdffb4e155ba27e2c90142998faaeb1d788b0a/README.recipes.md#recipe_modules-resultdb -[recipe_engine/recipe_modules/runtime]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/02cdffb4e155ba27e2c90142998faaeb1d788b0a/README.recipes.md#recipe_modules-runtime -[recipe_engine/recipe_modules/step]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/02cdffb4e155ba27e2c90142998faaeb1d788b0a/README.recipes.md#recipe_modules-step -[recipe_engine/recipe_modules/url]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/02cdffb4e155ba27e2c90142998faaeb1d788b0a/README.recipes.md#recipe_modules-url -[recipe_engine/recipe_modules/version]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/02cdffb4e155ba27e2c90142998faaeb1d788b0a/README.recipes.md#recipe_modules-version -[recipe_engine/wkt/RecipeApi]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/02cdffb4e155ba27e2c90142998faaeb1d788b0a/recipe_engine/recipe_api.py#878 +[recipe_engine/recipe_modules/assertions]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f6fc910b1f87c6d0d8757b9d40557a1caf75d506/README.recipes.md#recipe_modules-assertions +[recipe_engine/recipe_modules/buildbucket]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f6fc910b1f87c6d0d8757b9d40557a1caf75d506/README.recipes.md#recipe_modules-buildbucket +[recipe_engine/recipe_modules/cipd]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f6fc910b1f87c6d0d8757b9d40557a1caf75d506/README.recipes.md#recipe_modules-cipd +[recipe_engine/recipe_modules/commit_position]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f6fc910b1f87c6d0d8757b9d40557a1caf75d506/README.recipes.md#recipe_modules-commit_position +[recipe_engine/recipe_modules/context]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f6fc910b1f87c6d0d8757b9d40557a1caf75d506/README.recipes.md#recipe_modules-context +[recipe_engine/recipe_modules/cq]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f6fc910b1f87c6d0d8757b9d40557a1caf75d506/README.recipes.md#recipe_modules-cq +[recipe_engine/recipe_modules/file]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f6fc910b1f87c6d0d8757b9d40557a1caf75d506/README.recipes.md#recipe_modules-file +[recipe_engine/recipe_modules/json]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f6fc910b1f87c6d0d8757b9d40557a1caf75d506/README.recipes.md#recipe_modules-json +[recipe_engine/recipe_modules/milo]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f6fc910b1f87c6d0d8757b9d40557a1caf75d506/README.recipes.md#recipe_modules-milo +[recipe_engine/recipe_modules/path]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f6fc910b1f87c6d0d8757b9d40557a1caf75d506/README.recipes.md#recipe_modules-path +[recipe_engine/recipe_modules/platform]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f6fc910b1f87c6d0d8757b9d40557a1caf75d506/README.recipes.md#recipe_modules-platform +[recipe_engine/recipe_modules/properties]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f6fc910b1f87c6d0d8757b9d40557a1caf75d506/README.recipes.md#recipe_modules-properties +[recipe_engine/recipe_modules/python]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f6fc910b1f87c6d0d8757b9d40557a1caf75d506/README.recipes.md#recipe_modules-python +[recipe_engine/recipe_modules/raw_io]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f6fc910b1f87c6d0d8757b9d40557a1caf75d506/README.recipes.md#recipe_modules-raw_io +[recipe_engine/recipe_modules/resultdb]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f6fc910b1f87c6d0d8757b9d40557a1caf75d506/README.recipes.md#recipe_modules-resultdb +[recipe_engine/recipe_modules/runtime]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f6fc910b1f87c6d0d8757b9d40557a1caf75d506/README.recipes.md#recipe_modules-runtime +[recipe_engine/recipe_modules/step]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f6fc910b1f87c6d0d8757b9d40557a1caf75d506/README.recipes.md#recipe_modules-step +[recipe_engine/recipe_modules/url]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f6fc910b1f87c6d0d8757b9d40557a1caf75d506/README.recipes.md#recipe_modules-url +[recipe_engine/recipe_modules/version]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f6fc910b1f87c6d0d8757b9d40557a1caf75d506/README.recipes.md#recipe_modules-version +[recipe_engine/wkt/RecipeApi]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/f6fc910b1f87c6d0d8757b9d40557a1caf75d506/recipe_engine/recipe_api.py#878 diff --git a/recipes/recipes.py b/recipes/recipes.py index c87581f0f1..4e37b9cf8e 100755 --- a/recipes/recipes.py +++ b/recipes/recipes.py @@ -104,7 +104,9 @@ def parse(repo_root, recipes_cfg_path): raise MalformedRecipesCfg(ex.message, recipes_cfg_path) -_BAT = '.bat' if sys.platform.startswith(('win', 'cygwin')) else '' +IS_WIN = sys.platform.startswith(('win', 'cygwin')) + +_BAT = '.bat' if IS_WIN else '' GIT = 'git' + _BAT VPYTHON = 'vpython' + _BAT CIPD = 'cipd' + _BAT @@ -129,6 +131,7 @@ def _subprocess_call(argv, **kwargs): return subprocess.call(argv, **kwargs) + def _git_check_call(argv, **kwargs): argv = [GIT] + argv logging.info('Running %r', argv) @@ -237,12 +240,19 @@ def main(): engine_path = checkout_engine(engine_override, repo_root, recipes_cfg_path) - try: - return _subprocess_call( - [VPYTHON, '-u', - os.path.join(engine_path, 'recipe_engine', 'main.py')] + args) - except KeyboardInterrupt: - return 1 + argv = ( + [VPYTHON, '-u', os.path.join(engine_path, 'recipe_engine', 'main.py')] + + args) + + if IS_WIN: + # No real 'exec' on windows; set these signals to ignore so that they + # propagate to our children but we still wait for the child process to quit. + signal.signal(signal.SIGBREAK, signal.SIG_IGN) + signal.signal(signal.SIGINT, signal.SIG_IGN) + signal.signal(signal.SIGTERM, signal.SIG_IGN) + return _subprocess_call(argv) + else: + os.execvp(argv[0], argv) if __name__ == '__main__':