blob: c741942affec4aea53ce244f3747ed7292b60ace [file] [log] [blame]
load("//tools/base/bazel:kotlin.bzl", "kotlin_library", "kotlin_test")
load("//tools/base/bazel:gradle.bzl", "gradle_build", "gradle_test")
load("//tools/base/bazel:maven.bzl", "maven_repository")
load("//tools/base/build-system:hybrid_build.bzl", "GRADLE_PROPERTIES")
filegroup(
name = "agp_gradle_build_files",
srcs = glob([
"src/main/**/*.java",
"src/main/**/*.kt",
"src/main/resources/**",
]) + [
"build.gradle",
],
visibility = ["//visibility:private"],
)
filegroup(
name = "agp_gradle_test_files",
srcs = glob([
"src/test/**/*.java",
"src/test/**/*.kt",
"src/test/resources/**",
]) + [
"build.gradle",
],
visibility = ["//visibility:private"],
)
# keep sorted
FTL_GRADLE_PLUGIN_SOURCE_FILES = [
":agp_gradle_build_files",
"//tools:agp_gradle_build_files",
"//tools/base/build-system/builder-model:agp_gradle_build_files",
"//tools/base/build-system/builder-test-api:agp_gradle_build_files",
"//tools/base/build-system/gradle-api:agp_gradle_build_files",
"//tools/base/common:agp_gradle_build_files",
"//tools/buildSrc:agp_gradle_build_files",
"//tools/buildSrc/base:agp_gradle_build_files",
]
maven_repository(
name = "maven_dependencies",
# keep sorted
artifacts = [
"//tools/base/utp/android-test-plugin-host-device-info-proto",
"@maven//:com.google.api-client.google-api-client_1.22.0",
"@maven//:com.google.apis.google-api-services-storage_v1-rev82-1.22.0",
"@maven//:com.google.apis.google-api-services-testing_v1-rev82-1.22.0",
"@maven//:com.google.apis.google-api-services-toolresults_v1beta3-rev82-1.22.0",
"@maven//:com.google.http-client.google-http-client-jackson2",
"@maven//:com.google.http-client.google-http-client_1.41.0",
"@maven//:com.google.oauth-client.google-oauth-client_1.22.0",
"@maven//:com.google.protobuf.protobuf-java-util",
"@maven//:com.google.testing.platform.android-device-provider-local",
"@maven//:org.junit.junit-bom_5.9.3",
],
visibility = [
"//tools/base/build-system/integration-test:__subpackages__",
],
)
maven_repository(
name = "maven_test_dependencies",
# keep sorted
artifacts = [
"//tools/base/testutils:tools.testutils",
"@maven//:com.google.apis.google-api-services-storage_v1-rev82-1.22.0",
"@maven//:com.google.apis.google-api-services-testing_v1-rev82-1.22.0",
"@maven//:com.google.apis.google-api-services-toolresults_v1beta3-rev82-1.22.0",
"@maven//:org.jetbrains.kotlin.kotlin-test-junit_1.7.10",
],
)
gradle_build(
name = "testlab-gradle-plugin",
build_file = "//tools:agp_gradle_build_root_build_file",
data = ["//prebuilts/studio/jdk:jdk11"] + FTL_GRADLE_PLUGIN_SOURCE_FILES,
gradle_properties = GRADLE_PROPERTIES,
output_file = "testlab-gradle-plugin.zip",
output_file_source = "dist/repo.zip",
repos = [
":maven_dependencies",
"//tools/base:agp_artifacts",
"//tools/base:agp_dependencies",
],
tasks = [":zipPlugin"],
visibility = [
"//tools/base/build-system/integration-test:__subpackages__",
"//tools/base/gmaven:__pkg__",
],
)
gradle_test(
name = "testlab-gradle-plugin_test",
build_file = "//tools:agp_gradle_build_root_build_file",
data = [
":agp_gradle_test_files",
"//prebuilts/studio/jdk:jdk11",
] + FTL_GRADLE_PLUGIN_SOURCE_FILES,
gradle_properties = GRADLE_PROPERTIES,
repos = [
":maven_dependencies",
":maven_test_dependencies",
"//tools/base:agp_artifacts",
"//tools/base:agp_dependencies",
],
tasks = [":base:firebase:testlab:testlab-gradle-plugin:test"],
test_output_dir = "build/base/firebase/testlab/testlab-gradle-plugin/build/test-results/test",
visibility = ["//visibility:public"],
)
kotlin_library(
name = "lib",
srcs = glob([
"src/main/java/**/*.kt",
"src/main/java/**/*.java",
]),
lint_baseline = "lint_baseline.xml",
lint_custom_rules = [
"@maven//:androidx.lint.lint-gradle", # For gradle-specific lint checks
],
deps = [
"//prebuilts/tools/common/m2:com.google.api-client.google-api-client_1.22.0",
"//prebuilts/tools/common/m2:com.google.apis.google-api-services-storage_v1-rev82-1.22.0",
"//prebuilts/tools/common/m2:com.google.apis.google-api-services-testing_v1-rev82-1.22.0",
"//prebuilts/tools/common/m2:com.google.apis.google-api-services-toolresults_v1beta3-rev82-1.22.0",
"//prebuilts/tools/common/m2:com.google.oauth-client.google-oauth-client_1.22.0",
"//tools/base/build-system:gradle-api",
"//tools/base/build-system/gradle-core",
"//tools/base/common:tools.common",
"//tools/base/sdk-common:tools.sdk-common",
"//tools/base/sdklib:tools.sdklib",
"//tools/base/testutils:tools.testutils",
"//tools/base/utp/android-test-plugin-host-device-info-proto",
"@maven//:com.google.http-client.google-http-client-jackson2",
"@maven//:com.google.protobuf.protobuf-java",
"@maven//:com.google.testing.platform.core-proto",
],
)
kotlin_test(
name = "tests",
srcs = glob([
"src/test/java/**/*.kt",
"src/test/java/**/*.java",
]),
friends = [":lib"],
jvm_flags = ["-Dtest.suite.jar=tests.jar"],
resources = glob(["src/test/resources/**"]),
test_class = "com.android.testutils.JarTestSuite",
deps = [
":lib",
"//prebuilts/tools/common/m2:com.google.api-client.google-api-client_1.22.0",
"//prebuilts/tools/common/m2:com.google.apis.google-api-services-storage_v1-rev82-1.22.0",
"//prebuilts/tools/common/m2:com.google.apis.google-api-services-testing_v1-rev82-1.22.0",
"//prebuilts/tools/common/m2:com.google.apis.google-api-services-toolresults_v1beta3-rev82-1.22.0",
"//tools/base/build-system:gradle-api",
"//tools/base/build-system/gradle-core",
"//tools/base/common:tools.common",
"//tools/base/sdk-common:tools.sdk-common",
"//tools/base/sdklib:tools.sdklib",
"//tools/base/testutils:tools.testutils",
"//tools/base/utp/android-test-plugin-host-device-info-proto",
"@maven//:com.google.http-client.google-http-client-jackson2",
"@maven//:com.google.protobuf.protobuf-java",
"@maven//:com.google.testing.platform.core-proto",
"@maven//:com.google.truth.truth",
"@maven//:junit.junit",
"@maven//:nl.jqno.equalsverifier.equalsverifier",
"@maven//:org.mockito.mockito-core",
],
)