home-assistant-android/app/build.gradle

136 lines
4.3 KiB
Groovy

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'com.google.firebase.appdistribution'
apply plugin: 'com.github.triplet.play'
apply plugin: 'de.mannodermaus.android-junit5'
apply plugin: 'io.fabric'
buildscript {
repositories {
google()
maven { url "https://plugins.gradle.org/m2/" }
}
dependencies {
classpath 'com.google.firebase:firebase-appdistribution-gradle:1.3.1'
classpath 'com.github.triplet.gradle:play-publisher:2.6.2'
classpath 'de.mannodermaus.gradle.plugins:android-junit5:1.5.2.0'
}
}
def vCode = "${System.env.VERSION_CODE ?: 1}".toInteger()
def vName = "1.8.0-${vCode}"
android {
compileSdkVersion projectSdkVersion.toInteger()
defaultConfig {
applicationId "io.homeassistant.companion.android"
minSdkVersion projectMinSdkVersion
targetSdkVersion 29
versionCode vCode
versionName vName
}
viewBinding {
enabled = true
}
firebaseAppDistribution {
serviceCredentialsFile = "firebaseAppDistributionServiceCredentialsFile.json"
releaseNotesFile = "app/src/main/play/release-notes/en-US/default.txt"
groups = "continuous-deployment"
}
signingConfigs {
release {
storeFile file('release_keystore.keystore')
storePassword "${System.env.KEYSTORE_PASSWORD ?: ""}"
keyAlias "$System.env.KEYSTORE_ALIAS" ?: ""
keyPassword "${System.env.KEYSTORE_ALIAS_PASSWORD ?: ""}"
v1SigningEnabled true
v2SigningEnabled true
}
}
buildTypes {
debug {
applicationIdSuffix ".debug"
}
release {
debuggable false
jniDebuggable false
zipAlignEnabled true
signingConfig signingConfigs.release
}
}
testOptions {
unitTests.returnDefaultValues = true
junitPlatform {
filters {
engines {
include 'spek2'
}
}
}
}
lintOptions {
disable 'MissingTranslation'
}
}
play {
serviceAccountCredentials = file("playStorePublishServiceCredentialsFile.json")
track = "beta"
resolutionStrategy = "ignore"
}
dependencies {
implementation project(':common')
implementation project(':domain')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion"
implementation "com.google.dagger:dagger:${daggerVersion}"
kapt "com.google.dagger:dagger-compiler:${daggerVersion}"
implementation "androidx.appcompat:appcompat:$appCompatVersion"
implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycleVersion"
implementation "androidx.constraintlayout:constraintlayout:$constraintLayoutversion"
implementation "androidx.recyclerview:recyclerview:$recyclerViewVersion"
implementation "androidx.preference:preference-ktx:1.1.0"
implementation 'com.google.android.material:material:1.1.0'
implementation("com.jakewharton.threetenabp:threetenabp:$threeTenAbpVersion") {
exclude group: 'org.threeten'
}
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
implementation('com.lokalise.android:sdk:2.0.0-beta-5')
implementation 'com.google.android.gms:play-services-location:17.0.0'
implementation "com.google.firebase:firebase-core:17.2.2"
implementation "com.google.firebase:firebase-iid:20.0.2"
implementation "com.google.firebase:firebase-messaging:20.1.0"
implementation "androidx.work:work-runtime-ktx:2.3.2"
implementation 'androidx.biometric:biometric:1.0.1'
testImplementation "org.spekframework.spek2:spek-dsl-jvm:$spek2Version"
testImplementation "org.spekframework.spek2:spek-runner-junit5:$spek2Version"
testImplementation "org.assertj:assertj-core:$assertJVersion"
testImplementation "io.mockk:mockk:$mockkVersion"
testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutinesVersion"
}
// This plugin must stay at the bottom
// https://developers.google.com/android/guides/google-services-plugin
apply plugin: 'com.google.gms.google-services'