blob: 074db039d1d81c717437bfca0a17c4cb7383a77f [file] [log] [blame]
# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Generates BoringSSL documentation and uploads it to Cloud Storage."""
DEPS = [
'chromium',
'depot_tools/bot_update',
'depot_tools/gclient',
'depot_tools/gsutil',
'recipe_engine/buildbucket',
'recipe_engine/context',
'recipe_engine/path',
'recipe_engine/properties',
'recipe_engine/python',
'recipe_engine/runtime',
'recipe_engine/step',
]
def RunSteps(api):
# Sync and pull in everything.
api.gclient.set_config('boringssl')
api.bot_update.ensure_checkout()
api.gclient.runhooks()
# Set up paths.
util = api.path['checkout'].join('util')
go_env = util.join('bot', 'go', 'env.py')
output = api.path.mkdtemp('boringssl-docs')
# Generate and upload documentation.
with api.context(cwd=util):
api.python('generate', go_env, ['go', 'run', 'doc.go', '-out', output])
# Upload docs only if run after commit and on not experimental builds.
# TODO(tandrii, davidben): remove support for buildbot.
if api.buildbucket.build.builder.bucket == 'ci' or not api.runtime.is_luci:
if api.runtime.is_experimental:
api.step('skipping uploading docs on experimental build', cmd=None)
else:
api.gsutil(['-m', 'cp', '-a', 'public-read', api.path.join(output, '**'),
'gs://chromium-boringssl-docs/'])
def GenTests(api):
yield (
api.test('docs') +
api.runtime(is_luci=True, is_experimental=False) +
api.buildbucket.ci_build(
project='boringssl',
bucket='ci',
builder='docs',
git_repo='https://boringssl.googlesource.com/boringssl',
)
)
yield (
api.test('docs-experimental') +
api.runtime(is_luci=False, is_experimental=True) +
api.properties.generic(mastername='client.boringssl',
buildername='docs')
)
yield (
api.test('docs-try') +
api.runtime(is_luci=True, is_experimental=False) +
api.buildbucket.try_build(
project='boringssl',
bucket='try',
builder='docs',
git_repo='https://boringssl.googlesource.com/boringssl',
)
)