Commit 1519240e authored by maruel@chromium.org's avatar maruel@chromium.org

Add git cl try that tries from Rietveld.

Thin wrapper to process --bot and --testfilter to keep compability with gcl try
and git-try and pass the data directly to Rietveld.

R=rogerta@chromium.org
BUG=


Review URL: https://chromiumcodereview.appspot.com/10916118

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@155176 0039d316-1c4b-4281-b951-d872f2087c98
parent 89398203
......@@ -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"""
......
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