Confidence/build.gradle.kts (122 lines of code) (raw):
plugins {
id("com.android.library")
id("org.jetbrains.kotlin.android")
id("maven-publish")
id("org.jlleitschuh.gradle.ktlint")
id("signing")
kotlin("plugin.serialization").version("1.8.10").apply(true)
id("org.jetbrains.kotlinx.binary-compatibility-validator")
id("org.jetbrains.kotlinx.kover")
}
val providerVersion = project.extra["version"].toString()
object Versions {
const val openFeatureSDK = "0.2.3"
const val okHttp = "4.10.0"
const val kotlinxSerialization = "1.6.0"
const val coroutines = "1.7.3"
const val junit = "4.13.2"
const val kotlinMockito = "4.1.0"
const val mockWebServer = "4.9.1"
}
android {
namespace = "com.spotify.confidence"
compileSdk = 33
defaultConfig {
minSdk = 21
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles("consumer-rules.pro")
buildConfigField("String", "SDK_VERSION", "\"" + providerVersion + "\"")
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
publishing {
singleVariant("release") {
withJavadocJar()
withSourcesJar()
}
}
}
dependencies {
implementation("com.squareup.okhttp3:okhttp:${Versions.okHttp}")
implementation(
"org.jetbrains.kotlinx:kotlinx-serialization-json:${Versions.kotlinxSerialization}"
)
implementation("androidx.lifecycle:lifecycle-process:2.6.1")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:${Versions.coroutines}")
testImplementation("junit:junit:${Versions.junit}")
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:${Versions.coroutines}")
testImplementation("org.mockito.kotlin:mockito-kotlin:${Versions.kotlinMockito}")
testImplementation("com.squareup.okhttp3:mockwebserver:${Versions.mockWebServer}")
testImplementation("io.mockk:mockk:1.13.11")
}
publishing {
publications {
register<MavenPublication>("release") {
groupId = project.extra["groupId"].toString()
artifactId = "confidence-sdk-android"
version = providerVersion
pom {
name.set("Confidence SDK Android")
description.set("Android SDK for Confidence")
url.set("https://github.com/spotify/confidence-openfeature-provider-kotlin")
licenses {
license {
name.set("The Apache License, Version 2.0")
url.set("http://www.apache.org/licenses/LICENSE-2.0.txt")
}
}
developers {
developer {
id.set("vahidlazio")
name.set("Vahid Torkaman")
email.set("vahidt@spotify.com")
}
developer {
id.set("fabriziodemaria")
name.set("Fabrizio Demaria")
email.set("fdema@spotify.com")
}
developer {
id.set("nicklasl")
name.set("Nicklas Lundin")
email.set("nicklasl@spotify.com")
}
developer {
id.set("nickybondarenko")
name.set("Nicky Bondarenko")
email.set("nickyb@spotify.com")
}
}
scm {
connection.set(
"scm:git:git://spotify/confidence-openfeature-provider-kotlin.git"
)
developerConnection.set(
"scm:git:ssh://spotify/confidence-openfeature-provider-kotlin.git"
)
url.set("https://github.com/spotify/confidence-openfeature-provider-kotlin")
}
}
afterEvaluate {
from(components["release"])
}
}
}
}
signing {
sign(publishing.publications["release"])
}
kover {
reports {
verify {
rule {
minBound(78)
}
}
}
}