patrickfav/under-the-hood

View on GitHub
app/build.gradle

Summary

Maintainability
Test Coverage
apply plugin: 'com.android.application'

Properties localProps = getSigningProperties()

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion

    signingConfigs {
        release {
            storeFile file(localProps.getProperty('RELEASE_KEYSTORE_PATH', 'fillhere'))
            storePassword localProps.getProperty('RELEASE_KEYSTORE_PW', '')
            keyAlias localProps.getProperty('RELEASE_KEY_ALIAS', '')
            keyPassword localProps.getProperty('RELEASE_KEY_PW', '')
        }
    }

    defaultConfig {
        applicationId "at.favre.app.hood.demo"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode rootProject.ext.versionCode
        versionName rootProject.ext.versionNameApp
        testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'

        buildConfigField "String", "GIT_REV", "\"" + getGitRev() + "\""
        buildConfigField "String", "GIT_BRANCH", "\"" + getGitBranch() + "\""
        buildConfigField "String", "GIT_DATE", "\"" + getGitCommitDate() + "\""
        buildConfigField "String", "BUILD_NUMBER", "\"" + getCiBuildNumber() + "\""
        buildConfigField "String", "BUILD_DATE", "\"" + getBuildTime() + "\""
        buildConfigField "boolean", "IS_CI_BUILD", "${isCiBuild()}"

        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }

    buildFeatures {
        dataBinding = true
    }

    buildTypes {
        debug {
            buildConfigField "String", "BUILD_DATE", "\"\""

            testCoverageEnabled true
            applicationIdSuffix '.debug'
            minifyEnabled false
            shrinkResources false
            matchingFallbacks = ['release']
        }

        releaseNoop {
            applicationIdSuffix '.noop'
            minifyEnabled true
            shrinkResources true
            signingConfig signingConfigs.release
            matchingFallbacks = ['noop']
        }

        release {
            minifyEnabled true
            shrinkResources true
            signingConfig signingConfigs.release
        }

    }

    lintOptions {
        abortOnError false
    }

    applicationVariants.all { variant ->
        variant.outputs.all {
            outputFileName = "${project.name}-${variant.name}-${variant.versionName}.apk"
        }
    }
}

dependencies {
//    debugCompile("at.favre.lib.hood:hood-extended:$rootProject.ext.versionNameDep")
//    releaseCompile("at.favre.lib.hood:hood-extended:$rootProject.ext.versionNameDep")
//
//    releaseNoopCompile("at.favre.lib.hood:hood-extended:$rootProject.ext.versionNameDep") {
//        exclude group: 'at.favre.lib.hood', module: 'hood-core'
//        releaseNoopCompile(group: 'at.favre.lib.hood', name: 'hood-core', version: rootProject.ext.versionNameDep,
//                classifier: 'noop', ext: 'aar', transitive: true)
//    }

    implementation project(path: ':hood-extended')

    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation "androidx.appcompat:appcompat:$rootProject.ext.dependencies.androidx"
    implementation "com.jakewharton.timber:timber:$rootProject.ext.dependencies.timber"

    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test:rules:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.2.0'
    testImplementation "junit:junit:$rootProject.ext.dependencies.junit"
}