Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Side by Side Diff: trychange.py

Issue 1019713002: git try -t support for Gerrit (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: typo Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Client-side script to send a try job to the try server. It communicates to 6 """Client-side script to send a try job to the try server. It communicates to
7 the try server by either writting to a svn/git repository or by directly 7 the try server by either writting to a svn/git repository or by directly
8 connecting to the server by HTTP. 8 connecting to the server by HTTP.
9 """ 9 """
10 10
(...skipping 709 matching lines...) Expand 10 before | Expand all | Expand 10 after
720 def _SendChangeGerrit(bot_spec, options): 720 def _SendChangeGerrit(bot_spec, options):
721 """Posts a try job to a Gerrit change. 721 """Posts a try job to a Gerrit change.
722 722
723 Reads Change-Id from the HEAD commit, resolves the current revision, checks 723 Reads Change-Id from the HEAD commit, resolves the current revision, checks
724 that local revision matches the uploaded one, posts a try job in form of a 724 that local revision matches the uploaded one, posts a try job in form of a
725 message, sets Tryjob-Request label to 1. 725 message, sets Tryjob-Request label to 1.
726 726
727 Gerrit message format: starts with !tryjob, optionally followed by a tryjob 727 Gerrit message format: starts with !tryjob, optionally followed by a tryjob
728 definition in JSON format: 728 definition in JSON format:
729 buildNames: list of strings specifying build names. 729 buildNames: list of strings specifying build names.
730 build_properties: a dict of build properties.
730 """ 731 """
731 732
732 logging.info('Sending by Gerrit') 733 logging.info('Sending by Gerrit')
733 if not options.gerrit_url: 734 if not options.gerrit_url:
734 raise NoTryServerAccess('Please use --gerrit_url option to specify the ' 735 raise NoTryServerAccess('Please use --gerrit_url option to specify the '
735 'Gerrit instance url to connect to') 736 'Gerrit instance url to connect to')
736 gerrit_host = urlparse.urlparse(options.gerrit_url).hostname 737 gerrit_host = urlparse.urlparse(options.gerrit_url).hostname
737 logging.debug('Gerrit host: %s' % gerrit_host) 738 logging.debug('Gerrit host: %s' % gerrit_host)
738 739
739 def GetChangeId(commmitish): 740 def GetChangeId(commmitish):
740 """Finds Change-ID of the HEAD commit.""" 741 """Finds Change-ID of the HEAD commit."""
741 CHANGE_ID_RGX = '^Change-Id: (I[a-f0-9]{10,})' 742 CHANGE_ID_RGX = '^Change-Id: (I[a-f0-9]{10,})'
742 comment = scm.GIT.Capture(['log', '-1', commmitish, '--format=%b'], 743 comment = scm.GIT.Capture(['log', '-1', commmitish, '--format=%b'],
743 cwd=os.getcwd()) 744 cwd=os.getcwd())
744 change_id_match = re.search(CHANGE_ID_RGX, comment, re.I | re.M) 745 change_id_match = re.search(CHANGE_ID_RGX, comment, re.I | re.M)
745 if not change_id_match: 746 if not change_id_match:
746 raise Error('Change-Id was not found in the HEAD commit. Make sure you ' 747 raise Error('Change-Id was not found in the HEAD commit. Make sure you '
747 'have a Git hook installed that generates and inserts a ' 748 'have a Git hook installed that generates and inserts a '
748 'Change-Id into a commit message automatically.') 749 'Change-Id into a commit message automatically.')
749 change_id = change_id_match.group(1) 750 change_id = change_id_match.group(1)
750 return change_id 751 return change_id
751 752
752 def FormatMessage(): 753 def FormatMessage():
753 # Build job definition. 754 # Build job definition.
754 job_def = {} 755 job_def = {}
756 build_properties = {}
757 if options.testfilter:
758 build_properties['testfilter'] = options.testfilter
755 builderNames = [builder for builder, _ in bot_spec] 759 builderNames = [builder for builder, _ in bot_spec]
756 if builderNames: 760 if builderNames:
757 job_def['builderNames'] = builderNames 761 job_def['builderNames'] = builderNames
762 if build_properties:
763 job_def['build_properties'] = build_properties
758 764
759 # Format message. 765 # Format message.
760 msg = '!tryjob' 766 msg = '!tryjob'
761 if job_def: 767 if job_def:
762 msg = '%s %s' % (msg, json.dumps(job_def, sort_keys=True)) 768 msg = '%s %s' % (msg, json.dumps(job_def, sort_keys=True))
763 return msg 769 return msg
764 770
765 def PostTryjob(message): 771 def PostTryjob(message):
766 logging.info('Posting gerrit message: %s' % message) 772 logging.info('Posting gerrit message: %s' % message)
767 if not options.dry_run: 773 if not options.dry_run:
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after
1252 return 1 1258 return 1
1253 except (gclient_utils.Error, subprocess2.CalledProcessError), e: 1259 except (gclient_utils.Error, subprocess2.CalledProcessError), e:
1254 print >> sys.stderr, e 1260 print >> sys.stderr, e
1255 return 1 1261 return 1
1256 return 0 1262 return 0
1257 1263
1258 1264
1259 if __name__ == "__main__": 1265 if __name__ == "__main__":
1260 fix_encoding.fix_encoding() 1266 fix_encoding.fix_encoding()
1261 sys.exit(TryChange(None, None, False)) 1267 sys.exit(TryChange(None, None, False))
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698