diff --git a/.codecov.yml b/.codecov.yml new file mode 100644 index 0000000..fa1102f --- /dev/null +++ b/.codecov.yml @@ -0,0 +1,7 @@ +coverage: + range: 80..100 + round: down + precision: 2 + +ignore: + - "**/R.java" \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 213edfc..dec1bea 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,7 @@ android: - 'tools' - 'build-tools-25.0.2' - 'android-25' + - 'extra-android-m2repository' jdk: - 'oraclejdk8' @@ -21,10 +22,10 @@ cache: - '$HOME/.gradle/caches/' - '$HOME/.gradle/wrapper/' -#after_success: -# - './gradlew jacocoReport' -# - 'bash <(curl -s https://codecov.io/bash)' -# +after_success: + - './gradlew jacocoReport' + - 'bash <(curl -s https://codecov.io/bash)' + #deploy: # provider: 'script' # script: './gradlew bintrayUpload' diff --git a/lib/build.gradle b/lib/build.gradle index a7cf10e..80f0629 100644 --- a/lib/build.gradle +++ b/lib/build.gradle @@ -1,5 +1,6 @@ apply plugin: 'com.android.library' apply plugin: 'com.g4s8.quanta' +apply plugin: 'jacoco' configurations { javadocDeps @@ -18,12 +19,26 @@ android { testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } + buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_7 + targetCompatibility JavaVersion.VERSION_1_7 + } + + testOptions { + unitTests.all { + jacoco { + includeNoLocationClasses = true + } + } + } } task sourcesJar(type: Jar) { @@ -42,6 +57,43 @@ task javadocJar(type: Jar, dependsOn: javadoc) { from javadoc.destinationDir } +task jacocoReport(type: JacocoReport) { + group = 'Reporting' + description = 'Generate Jacoco coverage reports after running tests.' + + reports { + xml { + enabled = true + destination "${buildDir}/reports/jacoco/jacoco.xml" + } + html { + enabled = true + destination "${buildDir}/reports/jacoco" + } + } + + classDirectories = fileTree( + dir: 'build/intermediates/classes/debug', + excludes: [ + '**/R*.class', + '**/BuildConfig*', + '**/*Exception.class', + '**/*$$*' + ] + ) + + sourceDirectories = files('src/main/java') + executionData = files('build/jacoco/testDebugUnitTest.exec') + + doFirst { + files('build/intermediates/classes/debug').getFiles().each { file -> + if (file.name.contains('$$')) { + file.renameTo(file.path.replace('$$', '$')) + } + } + } +} + artifacts { archives javadocJar archives sourcesJar