Commit 867e3c95 authored by Edward Lemur's avatar Edward Lemur Committed by Commit Bot

Reland "bot_update: Pass target-ref to gclient."

This is a reland of f61af569

gclient was updated to handle these refs on
https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1590495

Original change's description:
> 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: Andrii Shyshkalov <tandrii@chromium.org>

Bug: 956807
Recipe-Nontrivial-Roll: infra
Recipe-Nontrivial-Roll: build_limited_scripts_slave
Recipe-Nontrivial-Roll: build
Change-Id: I06b2b517d3f1aeb0a12b7c5fc58f1621533dae5c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1592214
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: 's avatarAndrii Shyshkalov <tandrii@chromium.org>
parent a0ffbe45
......@@ -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