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

Side by Side Diff: PRESUBMIT.py

Issue 2203283003: Require gn format in presubmit (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: rebase Created 4 years, 4 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 | « BUILD.gn ('k') | 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 # Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 5
6 """Top-level presubmit script for Skia. 6 """Top-level presubmit script for Skia.
7 7
8 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts 8 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
9 for more details about the presubmit API built into gcl. 9 for more details about the presubmit API built into gcl.
10 """ 10 """
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 178
179 recipes_py = os.path.join('infra', 'bots', 'recipes.py') 179 recipes_py = os.path.join('infra', 'bots', 'recipes.py')
180 cmd = ['python', recipes_py, 'simulation_test'] 180 cmd = ['python', recipes_py, 'simulation_test']
181 try: 181 try:
182 subprocess.check_output(cmd) 182 subprocess.check_output(cmd)
183 except subprocess.CalledProcessError as e: 183 except subprocess.CalledProcessError as e:
184 results.append(output_api.PresubmitError( 184 results.append(output_api.PresubmitError(
185 '`%s` failed:\n%s' % (' '.join(cmd), e.output))) 185 '`%s` failed:\n%s' % (' '.join(cmd), e.output)))
186 return results 186 return results
187 187
188 def _CheckGNFormatted(input_api, output_api):
189 """Make sure any .gn files we're changing have been formatted."""
190 results = []
191 for f in input_api.AffectedFiles():
192 if not f.LocalPath().endswith('.gn'):
193 continue
194
195 cmd = ['gn', 'format', '--dry-run', f.LocalPath()]
196 try:
197 subprocess.check_output(cmd)
198 except subprocess.CalledProcessError:
199 fix = cmd[:]
200 fix[2] = '--in-place'
201 results.append(output_api.PresubmitError(
202 '`%s` failed, try\n\t%s' % (' '.join(cmd), ' '.join(fix))))
203 return results
204
188 205
189 def _CommonChecks(input_api, output_api): 206 def _CommonChecks(input_api, output_api):
190 """Presubmit checks common to upload and commit.""" 207 """Presubmit checks common to upload and commit."""
191 results = [] 208 results = []
192 sources = lambda x: (x.LocalPath().endswith('.h') or 209 sources = lambda x: (x.LocalPath().endswith('.h') or
193 x.LocalPath().endswith('.gypi') or 210 x.LocalPath().endswith('.gypi') or
194 x.LocalPath().endswith('.gyp') or 211 x.LocalPath().endswith('.gyp') or
195 x.LocalPath().endswith('.py') or 212 x.LocalPath().endswith('.py') or
196 x.LocalPath().endswith('.sh') or 213 x.LocalPath().endswith('.sh') or
197 x.LocalPath().endswith('.m') or 214 x.LocalPath().endswith('.m') or
(...skipping 17 matching lines...) Expand all
215 """Presubmit checks for the change on upload. 232 """Presubmit checks for the change on upload.
216 233
217 The following are the presubmit checks: 234 The following are the presubmit checks:
218 * Check change has one and only one EOL. 235 * Check change has one and only one EOL.
219 """ 236 """
220 results = [] 237 results = []
221 results.extend(_CommonChecks(input_api, output_api)) 238 results.extend(_CommonChecks(input_api, output_api))
222 # Run on upload, not commit, since the presubmit bot apparently doesn't have 239 # Run on upload, not commit, since the presubmit bot apparently doesn't have
223 # coverage installed. 240 # coverage installed.
224 results.extend(_RecipeSimulationTest(input_api, output_api)) 241 results.extend(_RecipeSimulationTest(input_api, output_api))
242 results.extend(_CheckGNFormatted(input_api, output_api))
225 return results 243 return results
226 244
227 245
228 def _CheckTreeStatus(input_api, output_api, json_url): 246 def _CheckTreeStatus(input_api, output_api, json_url):
229 """Check whether to allow commit. 247 """Check whether to allow commit.
230 248
231 Args: 249 Args:
232 input_api: input related apis. 250 input_api: input related apis.
233 output_api: output related apis. 251 output_api: output related apis.
234 json_url: url to download json style status. 252 json_url: url to download json style status.
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 state and an error if it is in 'Closed' state. 554 state and an error if it is in 'Closed' state.
537 """ 555 """
538 results = [] 556 results = []
539 results.extend(_CommonChecks(input_api, output_api)) 557 results.extend(_CommonChecks(input_api, output_api))
540 results.extend( 558 results.extend(
541 _CheckTreeStatus(input_api, output_api, json_url=( 559 _CheckTreeStatus(input_api, output_api, json_url=(
542 SKIA_TREE_STATUS_URL + '/banner-status?format=json'))) 560 SKIA_TREE_STATUS_URL + '/banner-status?format=json')))
543 results.extend(_CheckLGTMsForPublicAPI(input_api, output_api)) 561 results.extend(_CheckLGTMsForPublicAPI(input_api, output_api))
544 results.extend(_CheckOwnerIsInAuthorsFile(input_api, output_api)) 562 results.extend(_CheckOwnerIsInAuthorsFile(input_api, output_api))
545 return results 563 return results
OLDNEW
« no previous file with comments | « BUILD.gn ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698