apply plugin: 'android-sdk-manager' apply plugin: 'com.android.application' apply plugin: 'checkstyle' apply plugin: 'devicefarm' task accessToken { def tokenFile = new File("MapboxGLAndroidSDKTestApp/src/main/res/values/developer-config.xml") if (!tokenFile.exists()) { String tokenFileContents = "\n" + "\n" + " " + "$System.env.MAPBOX_ACCESS_TOKEN" + "\n" + "" if (tokenFileContents == null) { throw new InvalidUserDataException("You must set the MAPBOX_ACCESS_TOKEN environment variable.") } tokenFile.write(tokenFileContents) } } gradle.projectsEvaluated { preBuild.dependsOn('accessToken') } ext { supportLibVersion = '23.4.0' } android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "com.mapbox.mapboxsdk.testapp" minSdkVersion 15 targetSdkVersion 23 versionCode 9 versionName "4.1.0" // Specify AndroidJUnitRunner as the default test instrumentation runner testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } packagingOptions { exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' exclude 'LICENSE.txt' } lintOptions { checkAllWarnings true warningsAsErrors true disable 'IconDensities' disable 'InvalidPackage' } testOptions { unitTests.returnDefaultValues = true } buildTypes { debug { // run code coverage reports testCoverageEnabled = true } release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile(project(':MapboxGLAndroidSDK')) { transitive = true } // Support libraries compile "com.android.support:support-annotations:${supportLibVersion}" compile "com.android.support:support-v4:${supportLibVersion}" compile "com.android.support:appcompat-v7:${supportLibVersion}" compile "com.android.support:design:${supportLibVersion}" compile "com.android.support:recyclerview-v7:${supportLibVersion}" // Leak Canary debugCompile 'com.squareup.leakcanary:leakcanary-android:1.4-beta1' releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta1' // Mapbox Android Services compile('com.mapbox.mapboxsdk:mapbox-android-services:2.0.0-SNAPSHOT@aar') { transitive = true } // Testing dependencies testCompile 'junit:junit:4.12' testCompile 'org.mockito:mockito-core:1.10.19' androidTestCompile "com.android.support:support-annotations:${supportLibVersion}" androidTestCompile 'com.android.support.test:runner:0.4.1' androidTestCompile 'com.android.support.test:rules:0.4.1' androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1' } checkstyle { configFile project.file('../checks.xml') showViolations true } def getAccessKeyDeviceFarm() { return hasProperty('AWS_ACCESS_KEY_ID_DEVICE_FARM') ? AWS_ACCESS_KEY_ID_DEVICE_FARM : "" } def getSecretAccessKeyDeviceFarm() { return hasProperty('AWS_SECRET_ACCESS_KEY_DEVICE_FARM') ? AWS_SECRET_ACCESS_KEY_DEVICE_FARM : "" } devicefarm { projectName "Mapbox GL Android" // required: Must already exists. devicePool "sanity" // optional: Defaults to "Top Devices" authentication { accessKey getAccessKeyDeviceFarm() secretKey getSecretAccessKeyDeviceFarm() } // optional block, radios default to 'on' state, all parameters optional devicestate { ///extraDataZipFile file("path/to/zip") // or ‘null’ if you have no extra data. Default is null. //auxiliaryApps files(file("path/to/app"), file("path/to/app2")) // or ‘files()’ if you have no auxiliary apps. Default is an empty list. wifi "on" bluetooth "off" gps "on" nfc "on" latitude 47.6204 // default longitude - 122.3491 // default } // Instrumentation // optional filter "my-filter" // See AWS Developer docs instrumentation { } } android.applicationVariants.all { variant -> def name = variant.buildType.name def checkstyle = project.tasks.create "checkstyle${name.capitalize()}", Checkstyle checkstyle.dependsOn variant.javaCompile checkstyle.source variant.javaCompile.source checkstyle.classpath = project.fileTree(variant.javaCompile.destinationDir) checkstyle.exclude('**/BuildConfig.java') checkstyle.exclude('**/R.java') project.tasks.getByName("check").dependsOn checkstyle }