blob: 5b2cacec7f183f1d1a66e19b4dbdc982fe853106 [file] [log] [blame]
# Copyright 2020 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.
DEPS = [
"fuchsia/buildbucket_util",
"fuchsia/status_check",
"recipe_engine/buildbucket",
]
def RunSteps(api):
builds = api.buildbucket.collect_builds(
build_ids=[
123456789012345678,
987654321098765432,
112233445566778899,
199887766554433221,
]
).values()
api.buildbucket_util.display_builds("display builds", builds, raise_on_failure=True)
def GenTests(api):
def build(summary_markdown=None, **kwargs):
b = api.buildbucket.ci_build_message(**kwargs)
if summary_markdown:
b.summary_markdown = summary_markdown
return b
yield (
api.status_check.test("mixed_with_infra_failures", status="infra_failure")
# Exercise all status colors.
# Purple failures prioritized over red failures.
+ api.buildbucket.simulated_collect_output(
[
build(build_id=123456789012345678, status="SUCCESS"),
build(
build_id=987654321098765432,
status="INFRA_FAILURE",
summary_markdown="something failed",
),
build(
build_id=112233445566778899,
status="FAILURE",
summary_markdown="something failed",
),
build(build_id=199887766554433221, status="SCHEDULED"),
]
)
)
yield (
api.status_check.test("mixed_without_infra_failures", status="failure")
# With just red failures, raise red.
+ api.buildbucket.simulated_collect_output(
[
build(build_id=123456789012345678, status="SUCCESS"),
build(build_id=987654321098765432, status="FAILURE"),
build(build_id=112233445566778899, status="FAILURE"),
build(build_id=199887766554433221, status="SCHEDULED"),
]
)
)
yield (
api.status_check.test("all_passed")
+ api.buildbucket.simulated_collect_output(
[build(build_id=123456789012345678, status="SUCCESS")]
)
)