-
Notifications
You must be signed in to change notification settings - Fork 20
Expand file tree
/
Copy pathProductionModuleConfig.kt
More file actions
75 lines (61 loc) · 2.54 KB
/
ProductionModuleConfig.kt
File metadata and controls
75 lines (61 loc) · 2.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package io.embrace.internal
import com.android.build.api.dsl.LibraryExtension
import org.gradle.api.Project
import org.gradle.api.artifacts.VersionCatalogsExtension
import org.gradle.kotlin.dsl.getByType
fun Project.configureProductionModule(
android: LibraryExtension,
module: EmbraceBuildLogicExtension,
) {
with(project.pluginManager) {
apply("checkstyle")
apply("org.jetbrains.kotlinx.kover")
apply("com.vanniktech.maven.publish")
apply("binary-compatibility-validator")
}
project.configureBinaryCompatValidation(module)
android.apply {
useLibrary("android.test.runner")
useLibrary("android.test.base")
useLibrary("android.test.mock")
defaultConfig {
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
aarMetadata.minCompileSdk = 34
}
configureTestOptions(this)
buildTypes {
named("release") {
isMinifyEnabled = false
}
}
sourceSets {
getByName("test").java.srcDir("src/integrationTest/java")
getByName("test").kotlin.srcDir("src/integrationTest/kotlin")
getByName("test").resources.srcDir("src/integrationTest/resources")
}
}
configureCheckstyle()
project.dependencies.apply {
add("implementation", findLibrary("kotlin.stdlib"))
add("lintChecks", project.project(":embrace-lint"))
add("testImplementation", findLibrary("junit"))
add("testImplementation", findLibrary("mockk"))
add("testImplementation", findLibrary("androidx.test.core"))
add("testImplementation", findLibrary("androidx.test.junit"))
add("testImplementation", findLibrary("robolectric"))
add("testImplementation", findLibrary("mockwebserver"))
add("testImplementation", project(":embrace-test-common"))
add("testImplementation", project(":embrace-test-fakes"))
add("androidTestImplementation", findLibrary("androidx.test.core"))
add("androidTestImplementation", findLibrary("androidx.test.runner"))
add("androidTestUtil", findLibrary("androidx.test.orchestrator"))
}
project.afterEvaluate {
if (module.productionModule.get()) {
configurePublishing()
}
}
}
// workaround: see https://medium.com/@saulmm2/android-gradle-precompiled-scripts-tomls-kotlin-dsl-df3c27ea017c
fun Project.findLibrary(alias: String) =
project.extensions.getByType<VersionCatalogsExtension>().named("libs").findLibrary(alias).get()