1*847dbab7SAndroid Build Coastguard Worker/* 2*847dbab7SAndroid Build Coastguard Worker * Modified from https://gist.github.com/xian/05c4f27da6d4156b9827842217c2cd5c 3*847dbab7SAndroid Build Coastguard Worker * Reference: http://robolectric.org/blog/2017/03/01/hermetic-builds/ 4*847dbab7SAndroid Build Coastguard Worker * 5*847dbab7SAndroid Build Coastguard Worker * Run this script by `gradle -b update.gradle` 6*847dbab7SAndroid Build Coastguard Worker */ 7*847dbab7SAndroid Build Coastguard Worker 8*847dbab7SAndroid Build Coastguard WorkerdefaultTasks 'copySdks' 9*847dbab7SAndroid Build Coastguard Worker 10*847dbab7SAndroid Build Coastguard Workerdef androidSdkVersions = [ 11*847dbab7SAndroid Build Coastguard Worker '4.1.2_r1-robolectric-0', 12*847dbab7SAndroid Build Coastguard Worker '4.1.2_r1-robolectric-r1', 13*847dbab7SAndroid Build Coastguard Worker '4.2.2_r1.2-robolectric-0', 14*847dbab7SAndroid Build Coastguard Worker '4.2.2_r1.2-robolectric-r1', 15*847dbab7SAndroid Build Coastguard Worker '4.3_r2-robolectric-0', 16*847dbab7SAndroid Build Coastguard Worker '4.3_r2-robolectric-r1', 17*847dbab7SAndroid Build Coastguard Worker '4.4_r1-robolectric-1', 18*847dbab7SAndroid Build Coastguard Worker '4.4_r1-robolectric-r2', 19*847dbab7SAndroid Build Coastguard Worker '5.0.0_r2-robolectric-1', 20*847dbab7SAndroid Build Coastguard Worker '5.0.2_r3-robolectric-r0', 21*847dbab7SAndroid Build Coastguard Worker '5.1.1_r9-robolectric-1', 22*847dbab7SAndroid Build Coastguard Worker '5.1.1_r9-robolectric-r2', 23*847dbab7SAndroid Build Coastguard Worker '6.0.0_r1-robolectric-0', 24*847dbab7SAndroid Build Coastguard Worker '6.0.1_r3-robolectric-0', 25*847dbab7SAndroid Build Coastguard Worker '6.0.1_r3-robolectric-r1', 26*847dbab7SAndroid Build Coastguard Worker '7.0.0_r1-robolectric-0', 27*847dbab7SAndroid Build Coastguard Worker '7.0.0_r1-robolectric-r1', 28*847dbab7SAndroid Build Coastguard Worker '7.1.0_r7-robolectric-0', 29*847dbab7SAndroid Build Coastguard Worker '7.1.0_r7-robolectric-r1', 30*847dbab7SAndroid Build Coastguard Worker 'o-preview-4-robolectric-0', 31*847dbab7SAndroid Build Coastguard Worker '8.0.0_r4-robolectric-0', 32*847dbab7SAndroid Build Coastguard Worker '8.0.0_r4-robolectric-r1', 33*847dbab7SAndroid Build Coastguard Worker '8.1.0-robolectric-r4458339', 34*847dbab7SAndroid Build Coastguard Worker '9-robolectric-4913185-2', 35*847dbab7SAndroid Build Coastguard Worker '10-robolectric-5803371', 36*847dbab7SAndroid Build Coastguard Worker '11-robolectric-6757853', 37*847dbab7SAndroid Build Coastguard Worker '12-robolectric-7732740', 38*847dbab7SAndroid Build Coastguard Worker '12.1-robolectric-8229987', 39*847dbab7SAndroid Build Coastguard Worker '13-robolectric-9030017', 40*847dbab7SAndroid Build Coastguard Worker] 41*847dbab7SAndroid Build Coastguard Worker 42*847dbab7SAndroid Build Coastguard Workerdef buildDir = System.getProperty("user.dir") 43*847dbab7SAndroid Build Coastguard Worker 44*847dbab7SAndroid Build Coastguard Workerapply plugin: 'java' 45*847dbab7SAndroid Build Coastguard Worker 46*847dbab7SAndroid Build Coastguard Workerrepositories { 47*847dbab7SAndroid Build Coastguard Worker mavenCentral() 48*847dbab7SAndroid Build Coastguard Worker} 49*847dbab7SAndroid Build Coastguard Worker 50*847dbab7SAndroid Build Coastguard Workerconfigurations { 51*847dbab7SAndroid Build Coastguard Worker sandbox 52*847dbab7SAndroid Build Coastguard Worker} 53*847dbab7SAndroid Build Coastguard Worker 54*847dbab7SAndroid Build Coastguard Workerdef allSdkConfigurations = [] 55*847dbab7SAndroid Build Coastguard Worker 56*847dbab7SAndroid Build Coastguard WorkerandroidSdkVersions.forEach { version -> 57*847dbab7SAndroid Build Coastguard Worker allSdkConfigurations << configurations.create(version) 58*847dbab7SAndroid Build Coastguard Worker dependencies.add(version, "org.robolectric:android-all:${version}") 59*847dbab7SAndroid Build Coastguard Worker dependencies.add('sandbox', "org.robolectric:android-all:${version}") 60*847dbab7SAndroid Build Coastguard Worker} 61*847dbab7SAndroid Build Coastguard Worker 62*847dbab7SAndroid Build Coastguard Workertask copySdks(type: Copy) { 63*847dbab7SAndroid Build Coastguard Worker into "$buildDir" 64*847dbab7SAndroid Build Coastguard Worker from allSdkConfigurations 65*847dbab7SAndroid Build Coastguard Worker 66*847dbab7SAndroid Build Coastguard Worker doLast { 67*847dbab7SAndroid Build Coastguard Worker // robolectric-deps file is not used in Make build, so we don't need to generate it 68*847dbab7SAndroid Build Coastguard Worker // def f = new File("$buildDir/robolectric-deps.properties") 69*847dbab7SAndroid Build Coastguard Worker // f.delete() 70*847dbab7SAndroid Build Coastguard Worker 71*847dbab7SAndroid Build Coastguard Worker // f << "# Place this file in your test resources dir (e.g. src/test/resources).\n" 72*847dbab7SAndroid Build Coastguard Worker // f << "# Paths below should be absolute, or relative to this file.\n" 73*847dbab7SAndroid Build Coastguard Worker // f << "#\n" 74*847dbab7SAndroid Build Coastguard Worker 75*847dbab7SAndroid Build Coastguard Worker allSdkConfigurations.forEach { config -> 76*847dbab7SAndroid Build Coastguard Worker config.allDependencies.forEach { dep -> 77*847dbab7SAndroid Build Coastguard Worker def files = new ArrayList(config.files) 78*847dbab7SAndroid Build Coastguard Worker if (files.size != 1) { 79*847dbab7SAndroid Build Coastguard Worker throw new RuntimeException("huh, more than one file in ${dep}? ${files}") 80*847dbab7SAndroid Build Coastguard Worker } 81*847dbab7SAndroid Build Coastguard Worker // def file = files[0] 82*847dbab7SAndroid Build Coastguard Worker // f << "${dep.group}\\:${dep.name}\\:${dep.version}=path/to/${file.name}\n" 83*847dbab7SAndroid Build Coastguard Worker } 84*847dbab7SAndroid Build Coastguard Worker } 85*847dbab7SAndroid Build Coastguard Worker } 86*847dbab7SAndroid Build Coastguard Worker} 87