Browse Source

Enroll infra repos in stacked changes dogfood.

Bug: b/265929888
Change-Id: Ie4315fd110d5cdedb62dfc001ed5073c5bed4cfd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4300858
Commit-Queue: Joanna Wang <jojwang@chromium.org>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Joanna Wang 2 năm trước cách đây
mục cha
commit
5051ffee8a
1 tập tin đã thay đổi với 32 bổ sung12 xóa
  1. 32 12
      git_cl.py

+ 32 - 12
git_cl.py

@@ -163,6 +163,13 @@ assert len(_KNOWN_GERRIT_TO_SHORT_URLS) == len(
 _MAX_STACKED_BRANCHES_UPLOAD = 20
 
 
+# Repo prefixes that are enrolled in the stacked changes dogfood.
+DOGFOOD_STACKED_CHANGES_REPOS = [
+    'chromium.googlesource.com/infra/',
+    'chrome-internal.googlesource.com/infra/'
+]
+
+
 class GitPushError(Exception):
   pass
 
@@ -4777,7 +4784,31 @@ def CMDupload(parser, args):
     # Load default for user, repo, squash=true, in this order.
     options.squash = settings.GetSquashGerritUploads()
 
-  if options.squash and os.environ.get('DOGFOOD_STACKED_CHANGES') == '1':
+  cl = Changelist(branchref=options.target_branch)
+
+  # Warm change details cache now to avoid RPCs later, reducing latency for
+  # developers.
+  if cl.GetIssue():
+    cl._GetChangeDetail(
+        ['DETAILED_ACCOUNTS', 'CURRENT_REVISION', 'CURRENT_COMMIT', 'LABELS'])
+
+  if options.retry_failed and not cl.GetIssue():
+    print('No previous patchsets, so --retry-failed has no effect.')
+    options.retry_failed = False
+
+  remote = cl.GetRemoteUrl()
+  dogfood_stacked_changes = (os.environ.get('DOGFOOD_STACKED_CHANGES')
+                             not in ['1', '0']
+                             and any(repo in remote
+                                     for repo in DOGFOOD_STACKED_CHANGES_REPOS))
+
+  if dogfood_stacked_changes:
+    print('This repo has been enrolled in the stacked changes dogfood. '
+          'To opt-out use `export DOGFOOD_STACKED_CHANGES=0`. '
+          'File bugs at https://bit.ly/3Y6opoI')
+
+  if options.squash and (dogfood_stacked_changes
+                         or os.environ.get('DOGFOOD_STACKED_CHANGES') == '1'):
     if options.dependencies:
       parser.error('--dependencies is not available for this workflow.')
 
@@ -4792,17 +4823,6 @@ def CMDupload(parser, args):
   if options.cherry_pick_stacked:
     parser.error('--cherry-pick-stacked is not available for this workflow.')
 
-  cl = Changelist(branchref=options.target_branch)
-  # Warm change details cache now to avoid RPCs later, reducing latency for
-  # developers.
-  if cl.GetIssue():
-    cl._GetChangeDetail(
-        ['DETAILED_ACCOUNTS', 'CURRENT_REVISION', 'CURRENT_COMMIT', 'LABELS'])
-
-  if options.retry_failed and not cl.GetIssue():
-    print('No previous patchsets, so --retry-failed has no effect.')
-    options.retry_failed = False
-
   # cl.GetMostRecentPatchset uses cached information, and can return the last
   # patchset before upload. Calling it here makes it clear that it's the
   # last patchset before upload. Note that GetMostRecentPatchset will fail