mirror of
https://chromium.googlesource.com/chromium/tools/depot_tools.git
synced 2026-01-11 18:51:29 +00:00
[recipe_modules/presubmit] Only run with vpython3.
The time has come :). R=aravindvasudev@google.com Bug: 1413668 Recipe-Nontrivial-Roll: build Change-Id: Ie6e26cc87a22d17eb2e4bc6b8f86895738670eea Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4389545 Commit-Queue: Robbie Iannucci <iannucci@chromium.org> Reviewed-by: Bruce Dawson <brucedawson@chromium.org> Reviewed-by: Takuto Ikuta <tikuta@chromium.org> Reviewed-by: Aravind Vasudevan <aravindvasudev@google.com>
This commit is contained in:
@@ -758,7 +758,7 @@ Raises:
|
||||
|
||||
Returns a presubmit step.
|
||||
|
||||
— **def [execute](/recipes/recipe_modules/presubmit/api.py#130)(self, bot_update_step, skip_owners=False, run_all=False):**
|
||||
— **def [execute](/recipes/recipe_modules/presubmit/api.py#101)(self, bot_update_step, skip_owners=False, run_all=False):**
|
||||
|
||||
Runs presubmit and sets summary markdown if applicable.
|
||||
|
||||
@@ -769,7 +769,7 @@ Args:
|
||||
Returns:
|
||||
a RawResult object, suitable for being returned from RunSteps.
|
||||
|
||||
— **def [prepare](/recipes/recipe_modules/presubmit/api.py#78)(self, root_solution_revision=None):**
|
||||
— **def [prepare](/recipes/recipe_modules/presubmit/api.py#49)(self, root_solution_revision=None):**
|
||||
|
||||
Sets up a presubmit run.
|
||||
|
||||
|
||||
@@ -30,42 +30,13 @@ class PresubmitApi(recipe_api.RecipeApi):
|
||||
|
||||
name = kwargs.pop('name', 'presubmit')
|
||||
with self.m.depot_tools.on_path():
|
||||
# Use only vpython3 on bots that don't have vpython2 on the path any
|
||||
# longer.
|
||||
# TODO(https://crbug.com/1401307): Switch this to vpython3 premanently
|
||||
# and remove py3 part below.
|
||||
experiments = self.m.buildbucket.build.input.experiments
|
||||
if 'luci.buildbucket.omit_python2' in experiments:
|
||||
cmd = ['vpython3', self.presubmit_support_path, '--use-python3']
|
||||
else:
|
||||
cmd = ['vpython', self.presubmit_support_path]
|
||||
|
||||
cmd = ['vpython3', self.presubmit_support_path, '--use-python3']
|
||||
cmd.extend(args)
|
||||
cmd.extend(['--json_output', self.m.json.output()])
|
||||
if self.m.resultdb.enabled:
|
||||
kwargs['wrapper'] = ('rdb', 'stream', '--')
|
||||
step_data = self.m.step(name, cmd, **kwargs)
|
||||
output = step_data.json.output or {}
|
||||
if self.m.step.active_result.retcode != 0 or \
|
||||
'luci.buildbucket.omit_python2' in experiments:
|
||||
return output
|
||||
|
||||
presubmit_args = list(args) + [
|
||||
'--json_output',
|
||||
self.m.json.output(),
|
||||
]
|
||||
step_data = self.m.step(name + " py3",
|
||||
['vpython3', self.presubmit_support_path] +
|
||||
presubmit_args, **kwargs)
|
||||
output2 = step_data.json.output or {}
|
||||
|
||||
# combine outputs
|
||||
for key in output:
|
||||
if key in output2:
|
||||
output[key] += output2[key]
|
||||
del (output2[key])
|
||||
for key in output2:
|
||||
output[key] = output2[key]
|
||||
return output
|
||||
|
||||
@property
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
[
|
||||
{
|
||||
"cmd": [
|
||||
"vpython",
|
||||
"vpython3",
|
||||
"RECIPE_REPO[depot_tools]/presubmit_support.py",
|
||||
"--use-python3",
|
||||
"--json_output",
|
||||
"/path/to/tmp/json"
|
||||
],
|
||||
@@ -20,28 +21,6 @@
|
||||
"@@@STEP_LOG_END@json.output@@@"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cmd": [
|
||||
"vpython3",
|
||||
"RECIPE_REPO[depot_tools]/presubmit_support.py",
|
||||
"--json_output",
|
||||
"/path/to/tmp/json"
|
||||
],
|
||||
"env_suffixes": {
|
||||
"DEPOT_TOOLS_UPDATE": [
|
||||
"0"
|
||||
],
|
||||
"PATH": [
|
||||
"RECIPE_REPO[depot_tools]"
|
||||
]
|
||||
},
|
||||
"name": "presubmit py3",
|
||||
"~followup_annotations": [
|
||||
"@@@STEP_LOG_END@json.output (invalid)@@@",
|
||||
"@@@STEP_LOG_LINE@json.output (exception)@No JSON object could be decoded@@@",
|
||||
"@@@STEP_LOG_END@json.output (exception)@@@"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "$result"
|
||||
}
|
||||
|
||||
@@ -38,7 +38,6 @@ def GenTests(api):
|
||||
git_repo='https://chromium.googlesource.com/infra/infra'),
|
||||
api.properties(run_all=True),
|
||||
api.step_data('presubmit', api.json.output({})),
|
||||
api.step_data('presubmit py3', api.json.output({})),
|
||||
api.post_process(post_process.StatusSuccess),
|
||||
api.post_process(post_process.DropExpectation),
|
||||
)
|
||||
@@ -145,57 +144,6 @@ def GenTests(api):
|
||||
Expected "," after item in list
|
||||
```
|
||||
|
||||
#### To see notifications and warnings, look at the stdout of the presubmit step.
|
||||
''').strip()) + api.post_process(post_process.DropExpectation))
|
||||
yield (
|
||||
api.test('failure py3', status="FAILURE") +
|
||||
api.runtime(is_experimental=False) +
|
||||
api.buildbucket.try_build(project='infra') + api.step_data(
|
||||
'presubmit py3',
|
||||
api.json.output(
|
||||
{
|
||||
'errors': [{
|
||||
'message': 'Missing LGTM',
|
||||
'long_text': 'Here are some suggested OWNERS: fake@',
|
||||
'items': [],
|
||||
'fatal': True
|
||||
}, {
|
||||
'message': 'Syntax error in fake.py',
|
||||
'long_text': 'Expected "," after item in list',
|
||||
'items': [],
|
||||
'fatal': True
|
||||
}],
|
||||
'notifications': [{
|
||||
'message': 'If there is a bug associated please add it.',
|
||||
'long_text': '',
|
||||
'items': [],
|
||||
'fatal': False
|
||||
}],
|
||||
'warnings': [{
|
||||
'message': 'Line 100 has more than 80 characters',
|
||||
'long_text': '',
|
||||
'items': [],
|
||||
'fatal': False
|
||||
}]
|
||||
},
|
||||
retcode=1)) + api.post_process(post_process.StatusFailure) +
|
||||
api.post_process(
|
||||
post_process.ResultReason,
|
||||
textwrap.dedent(u'''
|
||||
#### There are 2 error(s), 1 warning(s), and 1 notifications(s). Here are the errors:
|
||||
|
||||
**ERROR**
|
||||
```
|
||||
Missing LGTM
|
||||
Here are some suggested OWNERS: fake@
|
||||
```
|
||||
|
||||
**ERROR**
|
||||
```
|
||||
Syntax error in fake.py
|
||||
Expected "," after item in list
|
||||
```
|
||||
|
||||
#### To see notifications and warnings, look at the stdout of the presubmit step.
|
||||
''').strip()) + api.post_process(post_process.DropExpectation))
|
||||
|
||||
@@ -291,25 +239,3 @@ def GenTests(api):
|
||||
api.post_process(post_process.StatusException) +
|
||||
api.post_process(post_process.ResultReason, bug_msg) +
|
||||
api.post_process(post_process.DropExpectation))
|
||||
|
||||
yield (api.test('warnings-merged') + api.runtime(is_experimental=False) +
|
||||
api.buildbucket.try_build(project='infra') + api.step_data(
|
||||
'presubmit',
|
||||
api.json.output({
|
||||
'errors': [],
|
||||
'notifications': [],
|
||||
'warnings': [{
|
||||
'message': 'warning py2'
|
||||
}]
|
||||
}),
|
||||
) + api.step_data(
|
||||
'presubmit py3',
|
||||
api.json.output({
|
||||
'errors': [],
|
||||
'extra': [],
|
||||
'warnings': [{
|
||||
'message': 'warning py3'
|
||||
}]
|
||||
}),
|
||||
) + api.post_process(post_process.StatusSuccess) +
|
||||
api.post_process(post_process.DropExpectation))
|
||||
|
||||
Reference in New Issue
Block a user