Home | History | Annotate | Download | only in doc
      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 
      5 import subprocess
      6 
      7 def _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 
     26 def CommonChecks(input_api, output_api):
     27   output = []
     28   output.extend(_CheckSphinxBuild(input_api, output_api))
     29   return output
     30 
     31 
     32 def CheckChangeOnUpload(input_api, output_api):
     33   return CommonChecks(input_api, output_api)
     34 
     35 
     36 def CheckChangeOnCommit(input_api, output_api):
     37   return CommonChecks(input_api, output_api)
     38