1# Copyright (c) 2012 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5import subprocess 6 7def _CheckSphinxBuild(input_api, output_api): 8 """Check that the docs are buildable without any warnings. 9 10 This check runs sphinx-build with -W so that warning are errors. 11 12 However, since the trybots don't have sphinx installed, we'll treat a sphinx 13 failure as a warning. (Let's trust that the docs editors are testing locally.) 14 """ 15 16 try: 17 subprocess.check_output(['make', 'presubmit', 'SPHINXOPTS=-Wa'], 18 stderr=subprocess.STDOUT) 19 except subprocess.CalledProcessError as e: 20 return [output_api.PresubmitNotifyResult('sphinx_build failed:\n' + 21 e.output)] 22 23 return [] 24 25 26def CommonChecks(input_api, output_api): 27 output = [] 28 output.extend(_CheckSphinxBuild(input_api, output_api)) 29 return output 30 31 32def CheckChangeOnUpload(input_api, output_api): 33 return CommonChecks(input_api, output_api) 34 35 36def CheckChangeOnCommit(input_api, output_api): 37 return CommonChecks(input_api, output_api) 38