Skip to content
Snippets Groups Projects
build.gradle 3.3 KiB
Newer Older
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlin_version = '1.4.21'
    ext.protobufVersion = '0.8.12'
    ext.navVersion = "2.2.2"

    repositories {
        google()
        jcenter()
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        // https://issuetracker.google.com/issues/176381203
        // Fixed in bleeding-edge
        // Can be upgraded once new Android version is released or
        // the specific version is available via maven
        classpath 'com.android.tools.build:gradle:4.1.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "com.google.protobuf:protobuf-gradle-plugin:$protobufVersion"
        classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$navVersion"
        classpath "org.jlleitschuh.gradle:ktlint-gradle:9.2.1"
        classpath "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.9.1"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

subprojects {
    apply plugin: "io.gitlab.arturbosch.detekt"
    apply plugin: "org.jlleitschuh.gradle.ktlint"

    detekt {
        debug = true
        ignoreFailures = false
        failFast = false // fail build on any finding
        buildUponDefaultConfig = true // preconfigure defaults
        config = files("$projectDir/config/detekt.yml")
        // point to your custom config defining rules to run, overwriting default behavior
        baseline = file("$projectDir/config/detekt-baseline.xml")
        parallel = true
        reports {
            html.enabled = true // observe findings in your browser with structure and code snippets
            xml.enabled = true // checkstyle like format mainly for integrations like Jenkins
            txt.enabled = true
            // similar to the console output, contains issue signature to manually edit baseline files
        ignoreFailures = false
        coloredOutput = false
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

wrapper {
    gradleVersion = "6.7.1"
    distributionType = "all"
task quickBuild {
    dependsOn ':Corona-Warn-App:assembleDeviceRelease'
    dependsOn ':Corona-Warn-App:testDeviceReleaseUnitTest'
    dependsOn ':Corona-Warn-App:lintDeviceRelease'
    dependsOn ':Corona-Warn-App:ktlintDeviceReleaseCheck'
    dependsOn ':Corona-Warn-App:detekt'
}

task quickBuildTest {
    dependsOn ':Corona-Warn-App:assembleDeviceForTestersRelease'
    dependsOn ':Corona-Warn-App:testDeviceForTestersReleaseUnitTest'
    dependsOn ':Corona-Warn-App:lintDeviceForTestersRelease'
    dependsOn ':Corona-Warn-App:ktlintDeviceForTestersReleaseCheck'
    dependsOn ':Corona-Warn-App:detekt'
}

task quickBuildWithFixes {
    dependsOn ':Corona-Warn-App:assembleDeviceRelease'
    dependsOn ':Corona-Warn-App:testDeviceReleaseUnitTest'
    dependsOn ':Corona-Warn-App:lintDeviceRelease'
    dependsOn ':Corona-Warn-App:ktlintFormat'
    dependsOn ':Corona-Warn-App:ktlintDeviceReleaseCheck'
    dependsOn ':Corona-Warn-App:detekt'
}