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

Unified Diff: git_cl.py

Issue 10916118: Add git cl try that tries from Rietveld. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Address review comments Created 8 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: git_cl.py
diff --git a/git_cl.py b/git_cl.py
index 48fb848c8f20935b2ba81723818809ee35bebfab..bca8760d14b797f1917269ff90c5a1170049f224 100755
--- a/git_cl.py
+++ b/git_cl.py
@@ -1510,6 +1510,92 @@ def CMDtree(parser, args):
return 0
+def CMDtry(parser, args):
+ """Triggers a try job through Rietveld."""
+ group = optparse.OptionGroup(parser, "Try job options")
+ group.add_option(
+ "-b", "--bot", action="append",
+ help=("IMPORTANT: specify ONE builder per --bot flag. Use it multiple "
+ "times to specify multiple builders. ex: "
+ "'-bwin_rel:ui_tests,webkit_unit_tests -bwin_layout'. See "
+ "the try server waterfall for the builders name and the tests "
+ "available. Can also be used to specify gtest_filter, e.g. "
+ "-bwin_rel:base_unittests:ValuesTest.*Value"))
+ group.add_option(
+ "-r", "--revision",
+ help="Revision to use for the try job; default: the "
+ "revision will be determined by the try server; see "
+ "its waterfall for more info")
+ group.add_option(
+ "-c", "--clobber", action="store_true", default=False,
+ help="Force a clobber before building; e.g. don't do an "
+ "incremental build")
+ group.add_option(
+ "--project",
+ help="Override which project to use. Projects are defined "
+ "server-side to define what default bot set to use")
+ group.add_option(
+ "-t", "--testfilter", action="append", default=[],
+ help=("Apply a testfilter to all the selected builders. Unless the "
+ "builders configurations are similar, use multiple "
+ "--bot <builder>:<test> arguments."))
+ group.add_option(
+ "-n", "--name", help="Try job name; default to current branch name")
+ parser.add_option_group(group)
+ options, args = parser.parse_args(args)
+
+ if args:
+ parser.error('Unknown arguments: %s' % args)
+
+ cl = Changelist()
+ if not cl.GetIssue():
+ parser.error('Need to upload first')
+
+ if not options.name:
+ options.name = cl.GetBranch()
+
+ # Process --bot and --testfilter.
+ if not options.bot:
+ # Get try slaves from PRESUBMIT.py files if not specified.
+ change = cl.GetChange(cl.GetUpstreamBranch(), None)
+ options.bot = presubmit_support.DoGetTrySlaves(
+ change,
+ change.LocalPaths(),
+ settings.GetRoot(),
+ None,
+ None,
+ options.verbose,
+ sys.stdout)
+ if not options.bot:
+ parser.error('No default try builder to try, use --bot')
+
+ builders_and_tests = {}
+ for bot in options.bot:
+ if ':' in bot:
+ builder, tests = bot.split(':', 1)
+ builders_and_tests.setdefault(builder, []).extend(tests.split(','))
+ elif ',' in bot:
+ parser.error('Specify one bot per --bot flag')
+ else:
+ builders_and_tests.setdefault(bot, []).append('defaulttests')
+
+ if options.testfilter:
+ forced_tests = sum((t.split(',') for t in options.testfilter), [])
+ builders_and_tests = dict(
+ (b, forced_tests) for b, t in builders_and_tests.iteritems()
+ if t != ['compile'])
+
+ patchset = cl.GetPatchset()
+ if not cl.GetPatchset():
+ properties = cl.RpcServer().get_issue_properties(cl.GetIssue(), False)
+ patchset = properties['patchsets'][-1]
+
+ cl.RpcServer().trigger_try_jobs(
+ cl.GetIssue(), patchset, options.name, options.clobber, options.revision,
+ builders_and_tests)
+ return 0
+
+
@usage('[new upstream branch]')
def CMDupstream(parser, args):
"""prints or sets the name of the upstream branch, if any"""
« 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