aboutsummaryrefslogtreecommitdiffstats
path: root/app/build.gradle
blob: 1a643e625c4ea893ba4009f289c555bac24027ec (plain)
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
apply plugin: 'android-sdk-manager'
apply plugin: 'com.android.application'
apply plugin: 'com.github.kt3k.coveralls'
apply from: '../config/quality.gradle'
apply from: '../config/translations.gradle'

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.0.1x'
    }
}

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "org.connectbot"
        minSdkVersion 4
        targetSdkVersion 22
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_5
            targetCompatibility JavaVersion.VERSION_1_5
        }

        ndk {
            moduleName "com_google_ase_Exec"
            ldLibs "log"
        }

        lintOptions {
            abortOnError false
            lintConfig file('lint.xml')
        }

        testApplicationId "org.connectbot.tests"
        testInstrumentationRunner "android.test.InstrumentationTestRunner"
    }

    signingConfigs {
        release
    }

    dependencies {
        compile "com.android.support:support-v4:22.2.+"
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg'

            if (project.hasProperty('keystorePassword')) {
                signingConfig signingConfigs.release
            }
        }

        debug {
            applicationIdSuffix ".debug"
            testCoverageEnabled true
        }
    }
}

apply plugin: 'jacoco'

// By default, Android Gradle plugin uses JaCoCo version 0.7.1, which works great in JUnit on the JVM.
// But that will fail on Android Lollipop/ART runtime, which requires 0.7.3 or higher.
if (rootProject.hasProperty('jacocoVersion')) {
    android.jacoco.version = rootProject.property('jacocoVersion')
    jacoco.toolVersion = rootProject.property('jacocoVersion')
} else {
    println "Using the default JaCoCo version of: ${jacoco.toolVersion}"
}

// The built-in jacoco plugin automatically applies itself to all Test tasks
tasks.withType(Test).whenTaskAdded {
    it.jacoco.append = false
    it.jacoco.classDumpFile = file("${project.buildDir}/jacoco/dump")
}

// These tasks are for generating the coverage report after JUnit+robolectric tests have executed
tasks.create(name: "jacocoTestDebugReport", type: JacocoReport, dependsOn: "testDebug") {
    group = "Reporting"
    description = "Generate Jacoco coverage reports"

    classDirectories = fileTree(
            dir: "${project.buildDir}/intermediates/classes/debug/",
            excludes: ['**/R.class',
                       '**/R$*.class',
                       '**/*$ViewInjector*.*',
                       '**/BuildConfig.*',
                       '**/Manifest*.*']
    )

    sourceDirectories = files("src/main/java", "src/debug/java")
    executionData = files("${project.buildDir}/jacoco/testDebug.exec")

    reports {
        xml.enabled = true
        html.enabled = true
    }
}

coveralls.jacocoReportPath = "${project.buildDir}/reports/jacoco/jacocoTestDebugReport/jacocoTestDebugReport.xml"

repositories {
    maven {
        url 'https://dl.bintray.com/connectbot/maven'
    }
}

dependencies {
    compile 'org.connectbot:sshlib:2.2.0'

    testCompile 'junit:junit:4.12'
    testCompile('org.robolectric:robolectric:3.0') {
        exclude group: 'commons-logging', module: 'commons-logging'
        exclude group: 'org.apache.httpcomponents', module: 'httpclient'
    }
}

if (project.hasProperty('keystorePassword')) {
    android.signingConfigs.release.storeFile file(keystoreFile)
    android.signingConfigs.release.storePassword keystorePassword
    android.signingConfigs.release.keyAlias keystoreAlias
    android.signingConfigs.release.keyPassword keystorePassword
}