Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 repository or by directly connecting | 7 the try server by either writting to a svn repository or by directly connecting |
| 8 to the server by HTTP. | 8 to the server by HTTP. |
| 9 """ | 9 """ |
| 10 | 10 |
| (...skipping 521 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 532 group.add_option("--dry_run", action='store_true', | 532 group.add_option("--dry_run", action='store_true', |
| 533 help="Don't send the try job. This implies --verbose, so " | 533 help="Don't send the try job. This implies --verbose, so " |
| 534 "it will print the diff.") | 534 "it will print the diff.") |
| 535 parser.add_option_group(group) | 535 parser.add_option_group(group) |
| 536 | 536 |
| 537 group = optparse.OptionGroup(parser, "Try job options") | 537 group = optparse.OptionGroup(parser, "Try job options") |
| 538 group.add_option("-b", "--bot", action="append", | 538 group.add_option("-b", "--bot", action="append", |
| 539 help="Only use specifics build slaves, ex: " | 539 help="Only use specifics build slaves, ex: " |
| 540 "'--bot win,layout_mac'; see the try " | 540 "'--bot win,layout_mac'; see the try " |
| 541 "server waterfall for the slave's name") | 541 "server waterfall for the slave's name") |
| 542 group.add_option("-B", "--print_bots", action="store_true", | |
| 543 help="Print bots we would use (e.g. from PRESUBMIT.py)" | |
| 544 " and exit. Do not send patch.") | |
|
M-A Ruel
2012/02/08 21:22:55
It's a bit confusing with the fact that --dry_run
| |
| 542 group.add_option("-r", "--revision", | 545 group.add_option("-r", "--revision", |
| 543 help="Revision to use for the try job; default: the " | 546 help="Revision to use for the try job; default: the " |
| 544 "revision will be determined by the try server; see " | 547 "revision will be determined by the try server; see " |
| 545 "its waterfall for more info") | 548 "its waterfall for more info") |
| 546 group.add_option("-c", "--clobber", action="store_true", | 549 group.add_option("-c", "--clobber", action="store_true", |
| 547 help="Force a clobber before building; e.g. don't do an " | 550 help="Force a clobber before building; e.g. don't do an " |
| 548 "incremental build") | 551 "incremental build") |
| 549 # TODO(maruel): help="Select a specific configuration, usually 'debug' or " | 552 # TODO(maruel): help="Select a specific configuration, usually 'debug' or " |
| 550 # "'release'" | 553 # "'release'" |
| 551 group.add_option("--target", help=optparse.SUPPRESS_HELP) | 554 group.add_option("--target", help=optparse.SUPPRESS_HELP) |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 756 if not options.email: | 759 if not options.email: |
| 757 parser.error('Using an anonymous checkout. Please use --email or set ' | 760 parser.error('Using an anonymous checkout. Please use --email or set ' |
| 758 'the TRYBOT_RESULTS_EMAIL_ADDRESS environment variable.') | 761 'the TRYBOT_RESULTS_EMAIL_ADDRESS environment variable.') |
| 759 print('Results will be emailed to: ' + options.email) | 762 print('Results will be emailed to: ' + options.email) |
| 760 | 763 |
| 761 if not options.bot: | 764 if not options.bot: |
| 762 # Get try slaves from PRESUBMIT.py files if not specified. | 765 # Get try slaves from PRESUBMIT.py files if not specified. |
| 763 # Even if the diff comes from options.url, use the local checkout for bot | 766 # Even if the diff comes from options.url, use the local checkout for bot |
| 764 # selection. | 767 # selection. |
| 765 try: | 768 try: |
| 766 import presubmit_support | 769 import presubmit_support |
|
M-A Ruel
2012/02/08 21:22:55
This code needs to be extracted in a function so t
| |
| 767 root_presubmit = checkouts[0].ReadRootFile('PRESUBMIT.py') | 770 root_presubmit = checkouts[0].ReadRootFile('PRESUBMIT.py') |
| 768 if not change: | 771 if not change: |
| 769 if not changed_files: | 772 if not changed_files: |
| 770 changed_files = checkouts[0].file_tuples | 773 changed_files = checkouts[0].file_tuples |
| 771 change = presubmit_support.Change(options.name, | 774 change = presubmit_support.Change(options.name, |
| 772 '', | 775 '', |
| 773 checkouts[0].checkout_root, | 776 checkouts[0].checkout_root, |
| 774 changed_files, | 777 changed_files, |
| 775 options.issue, | 778 options.issue, |
| 776 options.patchset, | 779 options.patchset, |
| 777 options.email) | 780 options.email) |
| 778 options.bot = presubmit_support.DoGetTrySlaves( | 781 options.bot = presubmit_support.DoGetTrySlaves( |
| 779 change, | 782 change, |
| 780 checkouts[0].GetFileNames(), | 783 checkouts[0].GetFileNames(), |
| 781 checkouts[0].checkout_root, | 784 checkouts[0].checkout_root, |
| 782 root_presubmit, | 785 root_presubmit, |
| 783 options.project, | 786 options.project, |
| 784 False, | 787 False, |
| 785 sys.stdout) | 788 sys.stdout) |
| 786 except ImportError: | 789 except ImportError: |
| 787 pass | 790 pass |
| 788 # If no bot is specified, either the default pool will be selected or the | 791 # If no bot is specified, either the default pool will be selected or the |
| 789 # try server will refuse the job. Either case we don't need to interfere. | 792 # try server will refuse the job. Either case we don't need to interfere. |
| 790 | 793 |
| 794 if options.print_bots: | |
| 795 print 'Bots which would be used: ' + str(options.bot) | |
|
M-A Ruel
2012/02/08 21:22:55
I'd prefer:
print 'Bots which would be used:'
for
| |
| 796 return 0 | |
| 797 | |
| 791 # Send the patch. | 798 # Send the patch. |
| 792 if options.send_patch: | 799 if options.send_patch: |
| 793 # If forced. | 800 # If forced. |
| 794 options.send_patch(options) | 801 options.send_patch(options) |
| 795 PrintSuccess(options) | 802 PrintSuccess(options) |
| 796 return 0 | 803 return 0 |
| 797 try: | 804 try: |
| 798 if can_http: | 805 if can_http: |
| 799 _SendChangeHTTP(options) | 806 _SendChangeHTTP(options) |
| 800 PrintSuccess(options) | 807 PrintSuccess(options) |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 812 return 1 | 819 return 1 |
| 813 except (gclient_utils.Error, subprocess2.CalledProcessError), e: | 820 except (gclient_utils.Error, subprocess2.CalledProcessError), e: |
| 814 print >> sys.stderr, e | 821 print >> sys.stderr, e |
| 815 return 1 | 822 return 1 |
| 816 return 0 | 823 return 0 |
| 817 | 824 |
| 818 | 825 |
| 819 if __name__ == "__main__": | 826 if __name__ == "__main__": |
| 820 fix_encoding.fix_encoding() | 827 fix_encoding.fix_encoding() |
| 821 sys.exit(TryChange(None, None, False)) | 828 sys.exit(TryChange(None, None, False)) |
| OLD | NEW |