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

""" The public infra rules and providers """

load(
    "//infra/private:fuchsia_builder_group.bzl",
    _fuchsia_builder_group = "fuchsia_builder_group",
)
load(
    "//infra/private/release:fuchsia_artifact_cipd_release.bzl",
    _fuchsia_artifact_cipd_release = "fuchsia_artifact_cipd_release",
)
load(
    "//infra/private/release:fuchsia_debug_symbol_cipd_release.bzl",
    _fuchsia_debug_symbol_cipd_release = "fuchsia_debug_symbol_cipd_release",
)
load(
    "//infra/private/release:fuchsia_cipd_releases.bzl",
    _fuchsia_cipd_releases = "fuchsia_cipd_releases",
)
load(
    "//infra/private/testing:fuchsia_test_group.bzl",
    _fuchsia_test_group = "fuchsia_test_group",
)
load(
    "//infra/private/testing:fuchsia_host_test_group.bzl",
    _fuchsia_host_test_group = "fuchsia_host_test_group",
)
load(
    "//infra/private/testing:fuchsia_test_target.bzl",
    _FUCHSIA_TEST_TARGET = "FUCHSIA_TEST_TARGET",
)
load(
    "//infra/private:providers.bzl",
    _FuchsiaBuilderGroupInfo = "FuchsiaBuilderGroupInfo",
)

# rules
fuchsia_builder_group = _fuchsia_builder_group

# release rules
fuchsia_artifact_cipd_release = _fuchsia_artifact_cipd_release
fuchsia_debug_symbol_cipd_release = _fuchsia_debug_symbol_cipd_release
fuchsia_cipd_releases = _fuchsia_cipd_releases

# testing rules
fuchsia_test_group = _fuchsia_test_group
fuchsia_host_test_group = _fuchsia_host_test_group
FUCHSIA_TEST_TARGET = _FUCHSIA_TEST_TARGET

# providers
FuchsiaBuilderGroupInfo = _FuchsiaBuilderGroupInfo
