From e38cf570fc8c0df53b576c179701efe6d683f7d2 Mon Sep 17 00:00:00 2001 From: Edward Lesmes Date: Wed, 25 Apr 2018 21:01:03 -0400 Subject: [PATCH] Reland "bot_update: Patch on gclient by default." This is a reland of 355b11a31f0d2bd2fcc4e14f8abc8681edbf3b2d Original change's description: > bot_update: Patch on gclient by default. > > See [4] for the design doc for this change. > > We're moving the patching logic from bot_update to gclient. > This way we can test patches of dependencies that modify their DEPS > files as well, for example when ANGLE uploads a patch that modifies > DEPS files to be tested by a Chromium trybot. > > Chromium Linux CQ and Angle trybots are already running this way > (see [1] and [2]) and a PSA has already been sent [3] > > [1] https://chromium.googlesource.com/chromium/src/+/master/infra/config/global/cr-buildbucket.cfg#214 > [2] https://chromium.googlesource.com/angle/angle/+/infra/config/cr-buildbucket.cfg#105 > [3] https://groups.google.com/a/google.com/forum/#!topic/chrome-infra/FVHN2kdUX4I > [4] https://docs.google.com/document/d/1GSTw4ysm5AYjNR6vMA7NJUxLK2VN9IpOEp_v0u-wyOE/edit?ts=5ad78165# > > Bug: 643346 > Change-Id: Ic9a9dcfae86aca730d35fbb26c26b21135e05bf3 > Recipe-Nontrivial-Roll: skia > Recipe-Nontrivial-Roll: infra > Recipe-Nontrivial-Roll: build_limited_scripts_slave > Recipe-Nontrivial-Roll: skiabuildbot > Recipe-Nontrivial-Roll: build > Recipe-Nontrivial-Roll: release_scripts > Reviewed-on: https://chromium-review.googlesource.com/1014356 > Commit-Queue: Edward Lesmes > Reviewed-by: Aaron Gable Bug: 643346 Change-Id: I2da17456f24d1e9fcc3f48f9242b4db05cadbf6d Reviewed-on: https://chromium-review.googlesource.com/1029073 Reviewed-by: Andrii Shyshkalov Commit-Queue: Edward Lesmes --- recipes/recipe_modules/bot_update/api.py | 6 +++--- ...patch_on_gclient.json => no_apply_patch_on_gclient.json} | 4 ++-- recipes/recipe_modules/bot_update/examples/full.py | 4 ++-- recipes/recipe_modules/bot_update/resources/bot_update.py | 4 +++- 4 files changed, 10 insertions(+), 8 deletions(-) rename recipes/recipe_modules/bot_update/examples/full.expected/{apply_patch_on_gclient.json => no_apply_patch_on_gclient.json} (99%) diff --git a/recipes/recipe_modules/bot_update/api.py b/recipes/recipe_modules/bot_update/api.py index d778e7288..7a1d08484 100644 --- a/recipes/recipe_modules/bot_update/api.py +++ b/recipes/recipe_modules/bot_update/api.py @@ -15,7 +15,7 @@ class BotUpdateApi(recipe_api.RecipeApi): patch_gerrit_url, revision, parent_got_revision, deps_revision_overrides, fail_patch, *args, **kwargs): self._apply_patch_on_gclient = properties.get( - 'apply_patch_on_gclient', False) + 'apply_patch_on_gclient', True) self._issue = patch_issue self._patchset = patch_set self._repository = repository or patch_repository_url @@ -207,8 +207,8 @@ class BotUpdateApi(recipe_api.RecipeApi): cmd.append('--gerrit_no_rebase_patch_ref') if disable_syntax_validation or cfg.disable_syntax_validation: cmd.append('--disable-syntax-validation') - if self._apply_patch_on_gclient: - cmd.append('--apply-patch-on-gclient') + if not self._apply_patch_on_gclient: + cmd.append('--no-apply-patch-on-gclient') # Inject Json output for testing. first_sln = cfg.solutions[0].name diff --git a/recipes/recipe_modules/bot_update/examples/full.expected/apply_patch_on_gclient.json b/recipes/recipe_modules/bot_update/examples/full.expected/no_apply_patch_on_gclient.json similarity index 99% rename from recipes/recipe_modules/bot_update/examples/full.expected/apply_patch_on_gclient.json rename to recipes/recipe_modules/bot_update/examples/full.expected/no_apply_patch_on_gclient.json index 81fdb28cf..25887e98e 100644 --- a/recipes/recipe_modules/bot_update/examples/full.expected/apply_patch_on_gclient.json +++ b/recipes/recipe_modules/bot_update/examples/full.expected/no_apply_patch_on_gclient.json @@ -69,7 +69,7 @@ "--revision", "src/third_party/angle@HEAD", "--disable-syntax-validation", - "--apply-patch-on-gclient" + "--no-apply-patch-on-gclient" ], "env_prefixes": { "PATH": [ @@ -170,7 +170,7 @@ "src@f27fede2220bcd326aee3e86ddfd4ebd0fe58cb9", "--revision", "src/third_party/angle@fac9503c46405f77757b9a728eb85b8d7bc6080c", - "--apply-patch-on-gclient" + "--no-apply-patch-on-gclient" ], "env_prefixes": { "PATH": [ diff --git a/recipes/recipe_modules/bot_update/examples/full.py b/recipes/recipe_modules/bot_update/examples/full.py index 88a936a6f..010bdd8a4 100644 --- a/recipes/recipe_modules/bot_update/examples/full.py +++ b/recipes/recipe_modules/bot_update/examples/full.py @@ -193,12 +193,12 @@ def GenTests(api): patch_issue=338811, patch_set=3, ) - yield api.test('apply_patch_on_gclient') + api.properties.tryserver( + yield api.test('no_apply_patch_on_gclient') + api.properties.tryserver( gerrit_project='angle/angle', patch_issue=338811, patch_set=3, ) + api.bot_update.properties( - apply_patch_on_gclient=True, + apply_patch_on_gclient=False, ) yield api.test('tryjob_gerrit_v8') + api.properties.tryserver( gerrit_project='v8/v8', diff --git a/recipes/recipe_modules/bot_update/resources/bot_update.py b/recipes/recipe_modules/bot_update/resources/bot_update.py index b3c8241d7..676c8503d 100755 --- a/recipes/recipe_modules/bot_update/resources/bot_update.py +++ b/recipes/recipe_modules/bot_update/resources/bot_update.py @@ -1028,7 +1028,9 @@ def parse_args(): parse.add_option( '--disable-syntax-validation', action='store_true', help='Disable validation of .gclient and DEPS syntax.') - parse.add_option('--apply-patch-on-gclient', action='store_true', + parse.add_option('--no-apply-patch-on-gclient', + dest='apply_patch_on_gclient', action='store_false', + default=True, help='Patch the gerrit ref in gclient instead of here.') options, args = parse.parse_args()