158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)# Copyright (c) 2012 The Chromium Authors. All rights reserved. 258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)# found in the LICENSE file. 458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)import subprocess 658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)def _CheckSphinxBuild(input_api, output_api): 858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) """Check that the docs are buildable without any warnings. 958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 1058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) This check runs sphinx-build with -W so that warning are errors. 1168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 1268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) However, since the trybots don't have sphinx installed, we'll treat a sphinx 1368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) failure as a warning. (Let's trust that the docs editors are testing locally.) 1458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) """ 1558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 1658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) try: 17a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) subprocess.check_output(['make', 'presubmit', 'SPHINXOPTS=-Wa'], 1868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) stderr=subprocess.STDOUT) 1958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) except subprocess.CalledProcessError as e: 2068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) return [output_api.PresubmitNotifyResult('sphinx_build failed:\n' + 2158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) e.output)] 2258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 2358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return [] 2458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 2558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 2658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)def CommonChecks(input_api, output_api): 2758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) output = [] 2858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) output.extend(_CheckSphinxBuild(input_api, output_api)) 2958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return output 3058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 3158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 3258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)def CheckChangeOnUpload(input_api, output_api): 3358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return CommonChecks(input_api, output_api) 3458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 3558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 3658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)def CheckChangeOnCommit(input_api, output_api): 3758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return CommonChecks(input_api, output_api) 38