blob: 464f5994cac872ec27c88c3b686f5462f2833b49 [file] [log] [blame]
# Copyright 2016 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Recipe for building and testing Cobalt."""
from recipe_engine.post_process import StatusSuccess
from recipe_engine.recipe_api import Property
PYTHON_VERSION_COMPATIBILITY = "PY3"
DEPS = [
"fuchsia/checkout",
"fuchsia/goma",
"fuchsia/status_check",
"recipe_engine/buildbucket",
"recipe_engine/context",
"recipe_engine/properties",
"recipe_engine/step",
]
PROPERTIES = {
"manifest": Property(kind=str, help="Jiri manifest to use"),
"remote": Property(kind=str, help="Remote manifest repository"),
}
def RunSteps(api, manifest, remote):
api.goma.ensure()
with api.context(infra_steps=True):
checkout = api.checkout.fuchsia_with_options(
manifest=manifest,
remote=remote,
)
# Start the cobalt build process.
with api.context(cwd=checkout.root_dir.join("cobalt")):
api.step("setup", ["./cobaltb.py", "setup"])
with api.goma.build_with_goma():
api.step(
"build", ["./cobaltb.py", "build", "--goma_dir", api.goma.goma_dir]
)
api.step("lint", ["./cobaltb.py", "lint", "--all"])
api.step("test", ["./cobaltb.py", "test"])
def GenTests(api):
yield (
api.status_check.test("ci")
+ api.properties(
manifest="cobalt", remote="https://fuchsia.googlesource.com/manifest"
)
+ api.post_process(StatusSuccess)
)
yield (
api.status_check.test("cq_try")
+ api.buildbucket.try_build(git_repo="https://fuchsia.googlesource.com/cobalt")
+ api.properties(
manifest="cobalt",
remote="https://fuchsia.googlesource.com/manifest",
)
+ api.post_process(StatusSuccess)
)