# Copyright 2019 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.

load("//common/specs.star", specs="specs")

load(
    "@proto//recipes/fuchsia.proto",
    fuchsia_pb="recipe_modules.infra.fuchsia",
)

ci_specs = [
    specs.spec(
        name="bringup-arm64-asan-qemu_kvm",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="debug",
                board="boards/arm64.gni",
                packages=["//bundles/buildbot:bringup"],
                product="products/bringup.gni",
                run_tests=True,
                target="arm64",
                variants=["asan", "host_asan"],
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pool="fuchsia.tests",
                timeout_secs=1800,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="bringup-arm64-clang-qemu_kvm",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="debug",
                board="boards/arm64.gni",
                packages=["//bundles/buildbot:bringup"],
                product="products/bringup.gni",
                run_tests=True,
                target="arm64",
                variants=["host_asan"],
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pool="fuchsia.tests",
                timeout_secs=1800,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="bringup-arm64-gcc-qemu_kvm",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="debug",
                board="boards/arm64.gni",
                packages=["//bundles/buildbot:bringup"],
                product="products/bringup.gni",
                run_tests=True,
                target="arm64",
                variants=["host_asan"],
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pool="fuchsia.tests",
                timeout_secs=1800,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="bringup-x64-asan-qemu_kvm",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="debug",
                board="boards/x64.gni",
                packages=["//bundles/buildbot:bringup"],
                product="products/bringup.gni",
                run_tests=True,
                target="x64",
                variants=["asan", "host_asan"],
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pool="fuchsia.tests",
                timeout_secs=1800,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="bringup-x64-clang-qemu_kvm",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="debug",
                board="boards/x64.gni",
                packages=["//bundles/buildbot:bringup"],
                product="products/bringup.gni",
                run_tests=True,
                target="x64",
                variants=["host_asan"],
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pool="fuchsia.tests",
                timeout_secs=1800,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="bringup-x64-gcc-qemu_kvm",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="debug",
                board="boards/x64.gni",
                packages=["//bundles/buildbot:bringup"],
                product="products/bringup.gni",
                run_tests=True,
                target="x64",
                variants=["host_asan"],
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pool="fuchsia.tests",
                timeout_secs=1800,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="fuchsia-arm64-debug",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="debug",
                board="boards/arm64.gni",
                packages=["//bundles/buildbot:core"],
                product="products/core.gni",
                run_tests=True,
                target="arm64",
                variants=["host_asan"],
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pave=True,
                pool="fuchsia.tests",
                test_in_shards=True,
                timeout_secs=1800,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="fuchsia-arm64-debug-build_default",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="debug",
                board="boards/arm64.gni",
                ninja_targets=[":default"],
                packages=["//bundles/buildbot:core"],
                product="products/core.gni",
                target="arm64",
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pave=True,
                pool="fuchsia.tests",
                timeout_secs=2400,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="fuchsia-arm64-debug-mac-build_default",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="debug",
                board="boards/arm64.gni",
                ninja_targets=[":default"],
                packages=["//bundles/buildbot:core"],
                product="products/core.gni",
                target="arm64",
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pave=True,
                pool="fuchsia.tests",
                timeout_secs=2400,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="fuchsia-arm64-fuzz_asan",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="debug",
                board="boards/arm64.gni",
                packages=["//bundles/buildbot:core"],
                product="products/core.gni",
                target="arm64",
                variants=[
                    "{variant=\"asan-fuzzer\" target_type=[\"fuzzed_executable\"]}"
                ],
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pave=True,
                pool="fuchsia.tests",
                timeout_secs=2400,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="fuchsia-arm64-fuzz_ubsan",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="debug",
                board="boards/arm64.gni",
                packages=["//bundles/buildbot:core"],
                product="products/core.gni",
                target="arm64",
                variants=[
                    "{variant=\"ubsan-fuzzer\" target_type=[\"fuzzed_executable\"]}"
                ],
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pave=True,
                pool="fuchsia.tests",
                timeout_secs=2400,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="fuchsia-arm64-profile",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="debug",
                board="boards/arm64.gni",
                packages=["//bundles/buildbot:core"],
                product="products/core.gni",
                run_tests=True,
                target="arm64",
                variants=["host_asan"],
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pave=True,
                pool="fuchsia.tests",
                test_in_shards=True,
                timeout_secs=1800,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="fuchsia-arm64-release",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="release",
                board="boards/arm64.gni",
                packages=["//bundles/buildbot:core"],
                product="products/core.gni",
                run_tests=True,
                target="arm64",
                variants=["host_asan"],
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pave=True,
                pool="fuchsia.tests",
                test_in_shards=True,
                timeout_secs=1800,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="fuchsia-arm64-thinlto",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="thinlto",
                board="boards/arm64.gni",
                packages=["//bundles/buildbot:core"],
                product="products/core.gni",
                run_tests=True,
                target="arm64",
                variants=["host_asan"],
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pave=True,
                pool="fuchsia.tests",
                test_in_shards=True,
                timeout_secs=1800,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="fuchsia-host-mac",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="release",
                environment_tags=["mac"],
                exclude_images=True,
                packages=["//bundles/buildbot:core"],
                product="products/core.gni",
                run_tests=True,
                target="x64",
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pave=True,
                pool="fuchsia.tests",
                test_in_shards=True,
                timeout_secs=2400,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="fuchsia-x64-debug",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="debug",
                board="boards/x64.gni",
                packages=["//bundles/buildbot:core"],
                product="products/core.gni",
                run_tests=True,
                target="x64",
                variants=["host_asan"],
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pave=True,
                pool="fuchsia.tests",
                test_in_shards=True,
                timeout_secs=1800,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="fuchsia-x64-debug-acts-bt1-dawson_canyon",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="debug",
                board="boards/x64.gni",
                environment_tags=["acts-connectivity-bt1"],
                packages=["//bundles/buildbot:core"],
                product="products/core.gni",
                run_tests=True,
                target="x64",
                variants=["host_asan"],
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pave=True,
                pool="fuchsia.tests",
                test_in_shards=True,
                timeout_secs=1800,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="fuchsia-x64-debug-acts-wifi-dawson_canyon",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="debug",
                board="boards/x64.gni",
                environment_tags=["acts-connectivity-wifi"],
                packages=["//bundles/buildbot:core"],
                product="products/core.gni",
                run_tests=True,
                target="x64",
                variants=["host_asan"],
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pave=True,
                pool="fuchsia.tests",
                test_in_shards=True,
                timeout_secs=1800,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="fuchsia-x64-debug-build_default",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="debug",
                board="boards/x64.gni",
                ninja_targets=[":default"],
                packages=["//bundles/buildbot:core"],
                product="products/core.gni",
                target="x64",
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pave=True,
                pool="fuchsia.tests",
                timeout_secs=2400,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="fuchsia-x64-debug-mac-build_default",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="debug",
                board="boards/x64.gni",
                ninja_targets=[":default"],
                packages=["//bundles/buildbot:core"],
                product="products/core.gni",
                target="x64",
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pave=True,
                pool="fuchsia.tests",
                timeout_secs=2400,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="fuchsia-x64-fuzz_asan",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="debug",
                board="boards/x64.gni",
                packages=["//bundles/buildbot:core"],
                product="products/core.gni",
                target="x64",
                variants=[
                    "{variant=\"asan-fuzzer\" target_type=[\"fuzzed_executable\"]}"
                ],
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pave=True,
                pool="fuchsia.tests",
                timeout_secs=2400,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="fuchsia-x64-fuzz_ubsan",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="debug",
                board="boards/x64.gni",
                packages=["//bundles/buildbot:core"],
                product="products/core.gni",
                target="x64",
                variants=[
                    "{variant=\"ubsan-fuzzer\" target_type=[\"fuzzed_executable\"]}"
                ],
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pave=True,
                pool="fuchsia.tests",
                timeout_secs=2400,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="fuchsia-x64-profile",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="debug",
                board="boards/x64.gni",
                packages=["//bundles/buildbot:core"],
                product="products/core.gni",
                run_tests=True,
                target="x64",
                variants=["host_asan"],
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pave=True,
                pool="fuchsia.tests",
                timeout_secs=1800,
                test_in_shards=True,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="fuchsia-x64-release",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="release",
                board="boards/x64.gni",
                packages=["//bundles/buildbot:core"],
                product="products/core.gni",
                run_tests=True,
                target="x64",
                variants=["host_asan"],
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pave=True,
                pool="fuchsia.tests",
                test_in_shards=True,
                timeout_secs=1800,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="ledger_e2e_sync-x64-debug",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="debug",
                board="boards/x64.gni",
                packages=[
                    "//peridot/packages/tests:ledger",
                    "//garnet/packages:garnet",
                    "//garnet/packages/testing:all",
                ],
                product="products/core.gni",
                run_tests=True,
                target="x64",
                variants=["host_asan"],
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pave=True,
                pool="fuchsia.tests",
                runtests_args=
                "-t ledger_e2e_sync \'/pkgfs/packages/ledger_tests/*/test/disabled\'",
                requires_secrets=True,
                timeout_secs=1800,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="toulouse-x64-debug",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="debug",
                board="boards/x64.gni",
                packages=["//bundles/buildbot:core"],
                product="products/core.gni",
                run_tests=True,
                target="x64",
                variants=["host_asan"],
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pave=True,
                pool="fuchsia.tests",
                test_in_shards=True,
                timeout_secs=1800,
            ),
            gcs_bucket="fuchsia-build",
        )),
    specs.spec(
        name="toulouse-x64-release",
        protobuf=fuchsia_pb.Fuchsia(
            checkout=fuchsia_pb.Fuchsia.Checkout(
                manifest="flower",
                project="integration",
                remote="https://fuchsia.googlesource.com/integration",
            ),
            build=fuchsia_pb.Fuchsia.Build(
                build_type="release",
                board="boards/x64.gni",
                packages=["//bundles/buildbot:core"],
                product="products/core.gni",
                run_tests=True,
                target="x64",
                variants=["host_asan"],
            ),
            test=fuchsia_pb.Fuchsia.Test(
                device_type="QEMU",
                pave=True,
                pool="fuchsia.tests",
                test_in_shards=True,
                timeout_secs=1800,
            ),
            gcs_bucket="fuchsia-build",
        ))
]
