Commit f61af569 authored by Edward Lemur's avatar Edward Lemur Committed by Commit Bot

bot_update: Pass target-ref to gclient.

Bug: 956807
Recipe-Nontrivial-Roll: infra
Recipe-Nontrivial-Roll: skia
Recipe-Nontrivial-Roll: build_limited_scripts_slave
Recipe-Nontrivial-Roll: build
Change-Id: I4d786d989446b8c1e3f39ef78c3c99cfe70808c0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1588502
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: 's avatarAndrii Shyshkalov <tandrii@chromium.org>
parent 0f58ae4d
......@@ -143,8 +143,12 @@ class BotUpdateApi(recipe_api.RecipeApi):
if patch:
repo_url = self.m.tryserver.gerrit_change_repo_url
fetch_ref = self.m.tryserver.gerrit_change_fetch_ref
target_ref = self.m.tryserver.gerrit_change_target_ref
if repo_url and fetch_ref:
flags.append(['--patch_ref', '%s@%s' % (repo_url, fetch_ref)])
flags.append([
'--patch_ref',
'%s@%s:%s' % (repo_url, target_ref, fetch_ref),
])
if patch_refs:
flags.extend(
['--patch_ref', patch_ref]
......@@ -195,8 +199,8 @@ class BotUpdateApi(recipe_api.RecipeApi):
if fixed_revision:
fixed_revisions[name] = fixed_revision
if fixed_revision.upper() == 'HEAD':
# Sync to correct destination branch if HEAD was specified.
fixed_revision = self._destination_branch(cfg, name)
# Sync to correct destination ref if HEAD was specified.
fixed_revision = self._destination_ref(cfg, name)
# If we're syncing to a ref, we want to make sure it exists before
# trying to check it out.
if (fixed_revision.startswith('refs/') and
......@@ -368,13 +372,13 @@ class BotUpdateApi(recipe_api.RecipeApi):
return step_result
def _destination_branch(self, cfg, path):
"""Returns the destination branch of a CL for the matching project
if available or HEAD otherwise.
def _destination_ref(self, cfg, path):
"""Returns the ref branch of a CL for the matching project if available or
HEAD otherwise.
If there's no Gerrit CL associated with the run, returns 'HEAD'.
Otherwise this queries Gerrit for the correct destination branch, which
might differ from master.
Otherwise this queries Gerrit for the correct destination ref, which
might differ from refs/heads/master.
Args:
cfg: The used gclient config.
......@@ -382,11 +386,13 @@ class BotUpdateApi(recipe_api.RecipeApi):
'src/v8'. The query will only be made for the project that matches
the CL's project.
Returns:
A destination branch as understood by bot_update.py if available
and if different from master, returns 'HEAD' otherwise.
A destination ref as understood by bot_update.py if available
and if different from refs/heads/master, returns 'HEAD' otherwise.
"""
# Ignore project paths other than the one belonging to the current CL.
patch_path = self.m.gclient.get_gerrit_patch_root(gclient_config=cfg)
if patch_path:
patch_path = patch_path.replace(self.m.path.sep, '/')
if not patch_path or path != patch_path:
return 'HEAD'
......@@ -394,13 +400,7 @@ class BotUpdateApi(recipe_api.RecipeApi):
if target_ref == 'refs/heads/master':
return 'HEAD'
# TODO: Remove. Return ref, not branch.
ret = target_ref
prefix = 'refs/heads/'
if ret.startswith(prefix):
ret = ret[len(prefix):]
return ret
return target_ref
def _resolve_fixed_revisions(self, bot_update_json):
"""Set all fixed revisions from the first sync to their respective
......
......@@ -56,7 +56,7 @@
"--output_json",
"/path/to/tmp/json",
"--patch_ref",
"https://chromium.googlesource.com/chromium/src@refs/changes/56/123456/7",
"https://chromium.googlesource.com/chromium/src@refs/heads/master:refs/changes/56/123456/7",
"--revision",
"src@HEAD",
"--disable-syntax-validation"
......
......@@ -56,7 +56,7 @@
"--output_json",
"/path/to/tmp/json",
"--patch_ref",
"https://chromium.googlesource.com/angle/angle@refs/changes/56/123456/7",
"https://chromium.googlesource.com/angle/angle@refs/heads/master:refs/changes/56/123456/7",
"--revision",
"src@HEAD",
"--revision",
......
......@@ -56,7 +56,7 @@
"--output_json",
"/path/to/tmp/json",
"--patch_ref",
"https://chromium.googlesource.com/chromium/src@refs/changes/56/123456/7",
"https://chromium.googlesource.com/chromium/src@refs/heads/master:refs/changes/56/123456/7",
"--revision",
"src@HEAD",
"--disable-syntax-validation"
......
......@@ -56,7 +56,7 @@
"--output_json",
"/path/to/tmp/json",
"--patch_ref",
"https://chromium.googlesource.com/chromium/src@refs/changes/56/123456/7",
"https://chromium.googlesource.com/chromium/src@refs/heads/master:refs/changes/56/123456/7",
"--revision",
"src@HEAD",
"--disable-syntax-validation"
......
......@@ -56,7 +56,7 @@
"--output_json",
"/path/to/tmp/json",
"--patch_ref",
"https://chromium.googlesource.com/chromium/src@refs/changes/56/123456/7",
"https://chromium.googlesource.com/chromium/src@refs/heads/master:refs/changes/56/123456/7",
"--revision",
"src@HEAD",
"--disable-syntax-validation"
......
......@@ -56,7 +56,7 @@
"--output_json",
"/path/to/tmp/json",
"--patch_ref",
"https://chromium.googlesource.com/angle/angle@refs/changes/56/123456/7",
"https://chromium.googlesource.com/angle/angle@refs/heads/master:refs/changes/56/123456/7",
"--revision",
"src@HEAD",
"--revision",
......
......@@ -56,7 +56,7 @@
"--output_json",
"/path/to/tmp/json",
"--patch_ref",
"https://chromium.googlesource.com/chromium/src@refs/changes/56/123456/7",
"https://chromium.googlesource.com/chromium/src@refs/branch-heads/67:refs/changes/56/123456/7",
"--revision",
"src@refs/branch-heads/67",
"--refs",
......
......@@ -56,9 +56,11 @@
"--output_json",
"/path/to/tmp/json",
"--patch_ref",
"https://chromium.googlesource.com/chromium/src@refs/changes/56/123456/7",
"https://chromium.googlesource.com/chromium/src@refs/heads/experimental/feature:refs/changes/56/123456/7",
"--revision",
"src@experimental/feature",
"src@refs/heads/experimental/feature",
"--refs",
"refs/heads/experimental/feature",
"--disable-syntax-validation"
],
"env_prefixes": {
......
......@@ -56,11 +56,11 @@
"--output_json",
"/path/to/tmp/json",
"--patch_ref",
"https://chromium.googlesource.com/v8/v8@refs/changes/56/123456/7",
"https://chromium.googlesource.com/v8/v8@refs/heads/experimental/feature:refs/changes/56/123456/7",
"--revision",
"src@HEAD",
"--revision",
"src/v8@experimental/feature",
"src/v8@refs/heads/experimental/feature",
"--disable-syntax-validation"
],
"env_prefixes": {
......
......@@ -56,7 +56,7 @@
"--output_json",
"/path/to/tmp/json",
"--patch_ref",
"https://webrtc.googlesource.com/src@refs/changes/56/123456/7",
"https://webrtc.googlesource.com/src@refs/heads/master:refs/changes/56/123456/7",
"--revision",
"src@HEAD",
"--revision",
......
......@@ -56,7 +56,7 @@
"--output_json",
"/path/to/tmp/json",
"--patch_ref",
"https://chromium.googlesource.com/v8/v8@refs/changes/56/123456/7",
"https://chromium.googlesource.com/v8/v8@refs/heads/master:refs/changes/56/123456/7",
"--revision",
"src@HEAD",
"--revision",
......
......@@ -56,7 +56,7 @@
"--output_json",
"/path/to/tmp/json",
"--patch_ref",
"https://chromium.googlesource.com/v8/v8@refs/changes/56/123456/7",
"https://chromium.googlesource.com/v8/v8@refs/heads/master:refs/changes/56/123456/7",
"--revision",
"src@HEAD",
"--revision",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment