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' apply from: '../config/jacoco.gradle' buildscript { repositories { jcenter() } dependencies { classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.0.1x' classpath 'com.android.tools.build:gradle:1.3.0' classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.12.0' } } dependencies { compile 'org.connectbot:sshlib:2.2.0' testCompile 'junit:junit:4.12' testCompile 'org.mockito:mockito-core:1.10.19' testCompile 'org.assertj:assertj-core:1.7.0' testCompile('org.robolectric:robolectric:3.0') { exclude group: 'commons-logging', module: 'commons-logging' exclude group: 'org.apache.httpcomponents', module: 'httpclient' } } android { compileSdkVersion 23 buildToolsVersion "22.0.1" defaultConfig { applicationId "org.connectbot" minSdkVersion 8 targetSdkVersion 23 ndk { moduleName "com_google_ase_Exec" ldLibs "log" } testApplicationId "org.connectbot.tests" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } signingConfigs { if (project.hasProperty('keystorePassword')) { release { storeFile file(property('keystoreFile')) storePassword property('keystorePassword') keyAlias property('keystoreAlias') keyPassword property('keystorePassword') } } } dependencies { compile "com.android.support:support-v4:23.0.0" compile "com.android.support:appcompat-v7:23.0.0" compile "com.android.support:design:23.0.0" androidTestCompile('com.android.support.test:runner:0.3') { exclude module: "support-annotations" } androidTestCompile('com.android.support.test:rules:0.3') { exclude module: "support-annotations" } androidTestCompile('com.android.support.test.espresso:espresso-core:2.2') { exclude module: "support-annotations" } } buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg' if (project.hasProperty('keystorePassword')) { //noinspection GroovyAssignabilityCheck signingConfig signingConfigs.release } return true // this silences Android Studio's groovy inspector } debug { applicationIdSuffix ".debug" testCoverageEnabled true } } lintOptions { abortOnError false lintConfig file('lint.xml') } packagingOptions { exclude 'META-INF/LICENSE.txt' exclude 'LICENSE.txt' } } def getGitDescription = { -> try { def stdout = new ByteArrayOutputStream() exec { commandLine 'git', 'describe', '--dirty' standardOutput = stdout } return stdout.toString().trim() } catch (ignored) { return null; } } // Insert the build number into strings.xml android.applicationVariants.all { variant -> variant.mergeResources.doLast{ ext.env = System.getenv() def buildNumber = getGitDescription() if (buildNumber != null) { File valuesFile = file("${buildDir}/intermediates/res/${variant.dirName}/values/values.xml") String content = valuesFile.getText('UTF-8') content = content.replaceAll(/\(working copy\)/, buildNumber) valuesFile.write(content, 'UTF-8') } } }