Yigit Boyar | e421e29 | 2015-03-13 12:57:48 -0700 | [diff] [blame] | 1 | Properties databindingProperties = new Properties() |
George Mount | 4c5cc00 | 2015-03-12 09:18:12 -0700 | [diff] [blame] | 2 | databindingProperties.load(new FileInputStream("${projectDir}/databinding.properties")) |
Yigit Boyar | b135633 | 2015-05-21 15:49:58 -0700 | [diff] [blame] | 3 | def repoBase = databindingProperties.mavenRepoAbsolutePath == "." ? projectDir : databindingProperties.mavenRepoAbsolutePath |
| 4 | databindingProperties.mavenRepoDir = "${repoBase}/${databindingProperties.mavenRepoName}" |
| 5 | |
Yigit Boyar | c64ae35 | 2015-04-21 14:05:41 -0700 | [diff] [blame] | 6 | databindingProperties.eapOutDir = "${projectDir}/${databindingProperties.eapOutFolderName}" |
Yigit Boyar | ee75867 | 2015-04-16 15:12:02 -0700 | [diff] [blame] | 7 | databindingProperties.prebuildFolder = "${projectDir}/${databindingProperties.prebuildFolderName}" + |
| 8 | "/${databindingProperties.releaseVersion}" |
Yigit Boyar | e421e29 | 2015-03-13 12:57:48 -0700 | [diff] [blame] | 9 | ext.config = databindingProperties |
| 10 | |
Yigit Boyar | e421e29 | 2015-03-13 12:57:48 -0700 | [diff] [blame] | 11 | println "local maven repo is ${ext.config.mavenRepoDir}." |
Yigit Boyar | ee75867 | 2015-04-16 15:12:02 -0700 | [diff] [blame] | 12 | println "local pre-build folder is ${ext.config.prebuildFolder}." |
Yigit Boyar | e421e29 | 2015-03-13 12:57:48 -0700 | [diff] [blame] | 13 | |
| 14 | new File(ext.config.mavenRepoDir).mkdir() |
Yigit Boyar | ee75867 | 2015-04-16 15:12:02 -0700 | [diff] [blame] | 15 | new File(ext.config.prebuildFolder).mkdir() |
| 16 | |
Yigit Boyar | 840f0ce | 2014-12-12 16:45:00 -0800 | [diff] [blame] | 17 | subprojects { |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 18 | apply plugin: 'maven' |
Yigit Boyar | a6e4583 | 2015-03-13 15:58:53 -0700 | [diff] [blame] | 19 | group = config.group |
Yigit Boyar | 9399cb4 | 2015-05-16 15:42:45 -0700 | [diff] [blame] | 20 | version = config.version |
Yigit Boyar | 840f0ce | 2014-12-12 16:45:00 -0800 | [diff] [blame] | 21 | repositories { |
Yigit Boyar | 840f0ce | 2014-12-12 16:45:00 -0800 | [diff] [blame] | 22 | mavenCentral() |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 23 | maven { |
Yigit Boyar | e421e29 | 2015-03-13 12:57:48 -0700 | [diff] [blame] | 24 | url "file://${config.mavenRepoDir}" |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 25 | } |
Yigit Boyar | 840f0ce | 2014-12-12 16:45:00 -0800 | [diff] [blame] | 26 | } |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 27 | uploadArchives { |
| 28 | repositories { |
| 29 | mavenDeployer { |
Yigit Boyar | e421e29 | 2015-03-13 12:57:48 -0700 | [diff] [blame] | 30 | repository(url: "file://${config.mavenRepoDir}") |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 31 | } |
| 32 | } |
| 33 | } |
| 34 | } |
| 35 | |
Yigit Boyar | b135633 | 2015-05-21 15:49:58 -0700 | [diff] [blame] | 36 | |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 37 | task deleteRepo(type: Delete) { |
Yigit Boyar | b135633 | 2015-05-21 15:49:58 -0700 | [diff] [blame] | 38 | delete "${config.mavenRepoDir}/${config.group.replace('.', '/')}" |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 39 | } |
| 40 | |
Yigit Boyar | ee75867 | 2015-04-16 15:12:02 -0700 | [diff] [blame] | 41 | task deletePrebuildFolder(type: Delete) { |
| 42 | delete "${config.prebuildFolder}" |
| 43 | } |
| 44 | |
Yigit Boyar | c64ae35 | 2015-04-21 14:05:41 -0700 | [diff] [blame] | 45 | task deleteEap(type: Delete) { |
| 46 | delete "${config.eapOutDir}" |
| 47 | } |
| 48 | |
| 49 | |
Yigit Boyar | a6e4583 | 2015-03-13 15:58:53 -0700 | [diff] [blame] | 50 | def buildExtensionsTask = project.tasks.create "buildExtensionsTask", Exec |
| 51 | buildExtensionsTask.workingDir file('extensions').getAbsolutePath() |
Yigit Boyar | a6e4583 | 2015-03-13 15:58:53 -0700 | [diff] [blame] | 52 | buildExtensionsTask.commandLine './gradlew' |
| 53 | buildExtensionsTask.args 'clean', 'uploadArchives', '--info', '--stacktrace' |
| 54 | buildExtensionsTask.dependsOn subprojects.uploadArchives |
| 55 | |
Yigit Boyar | ee75867 | 2015-04-16 15:12:02 -0700 | [diff] [blame] | 56 | def prepareExtensionPrebuilds = project.tasks.create "prepareExtensionPrebuilds", Exec |
| 57 | prepareExtensionPrebuilds.workingDir file('extensions').getAbsolutePath() |
| 58 | prepareExtensionPrebuilds.commandLine './gradlew' |
| 59 | prepareExtensionPrebuilds.args 'clean', 'preparePrebuilds', '--info', '--stacktrace' |
| 60 | prepareExtensionPrebuilds.dependsOn subprojects.uploadArchives |
| 61 | |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 62 | file('integration-tests').listFiles().findAll { it.isDirectory() }.each { |
Yigit Boyar | a6e4583 | 2015-03-13 15:58:53 -0700 | [diff] [blame] | 63 | println("Creating run test task for ${it.getAbsolutePath()}.") |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 64 | def testTask = project.tasks.create "runTestsOf${it.getName().capitalize()}", Exec |
Yigit Boyar | a6e4583 | 2015-03-13 15:58:53 -0700 | [diff] [blame] | 65 | testTask.workingDir it.getAbsolutePath() |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 66 | //on linux |
| 67 | testTask.commandLine './gradlew' |
Yigit Boyar | a6e4583 | 2015-03-13 15:58:53 -0700 | [diff] [blame] | 68 | testTask.args 'clean', 'connectedCheck', '--info', '--stacktrace' |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 69 | testTask.dependsOn subprojects.uploadArchives |
Yigit Boyar | a6e4583 | 2015-03-13 15:58:53 -0700 | [diff] [blame] | 70 | testTask.dependsOn buildExtensionsTask |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 71 | } |
| 72 | |
| 73 | task runIntegrationTests { |
| 74 | dependsOn tasks.findAll { task -> task.name.startsWith('runTestsOf') } |
| 75 | } |
| 76 | |
| 77 | task runAllTests { |
| 78 | dependsOn runIntegrationTests |
| 79 | } |
| 80 | |
Yigit Boyar | ee75867 | 2015-04-16 15:12:02 -0700 | [diff] [blame] | 81 | task preparePrebuilds() { |
| 82 | dependsOn deletePrebuildFolder |
| 83 | dependsOn prepareExtensionPrebuilds |
| 84 | } |
| 85 | |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 86 | allprojects { |
| 87 | afterEvaluate { project -> |
| 88 | runAllTests.dependsOn project.tasks.findAll {task -> task.name.equals('test')} |
Yigit Boyar | a6e4583 | 2015-03-13 15:58:53 -0700 | [diff] [blame] | 89 | runAllTests.dependsOn project.tasks.findAll {task -> task.name.equals('connectedCheck')} |
Yigit Boyar | ee75867 | 2015-04-16 15:12:02 -0700 | [diff] [blame] | 90 | preparePrebuilds.dependsOn project.tasks.findAll {task -> task.name.startsWith('prebuild')} |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 91 | } |
| 92 | } |
| 93 | |
Yigit Boyar | a6e4583 | 2015-03-13 15:58:53 -0700 | [diff] [blame] | 94 | subprojects.uploadArchives.each { it.shouldRunAfter deleteRepo } |
Yigit Boyar | ae16128 | 2015-04-21 11:02:58 -0700 | [diff] [blame] | 95 | subprojects.uploadArchives.each { it.shouldRunAfter deletePrebuildFolder } |
Yigit Boyar | a6e4583 | 2015-03-13 15:58:53 -0700 | [diff] [blame] | 96 | buildExtensionsTask.shouldRunAfter deleteRepo |
Yigit Boyar | 99a3d31 | 2015-03-25 12:46:05 -0700 | [diff] [blame] | 97 | tasks['runTestsOfMultiModuleTestApp'].dependsOn tasks['runTestsOfIndependentLibrary'] |
Yigit Boyar | a6e4583 | 2015-03-13 15:58:53 -0700 | [diff] [blame] | 98 | |
Yigit Boyar | f9e51c0 | 2015-03-12 14:30:29 -0700 | [diff] [blame] | 99 | |
| 100 | task rebuildRepo() { |
| 101 | dependsOn deleteRepo |
| 102 | dependsOn subprojects.uploadArchives |
Yigit Boyar | a6e4583 | 2015-03-13 15:58:53 -0700 | [diff] [blame] | 103 | dependsOn buildExtensionsTask |
Yigit Boyar | ee75867 | 2015-04-16 15:12:02 -0700 | [diff] [blame] | 104 | } |
| 105 | |
Yigit Boyar | c64ae35 | 2015-04-21 14:05:41 -0700 | [diff] [blame] | 106 | task copySamplesToEap(type : Copy) { |
| 107 | mustRunAfter deleteEap |
| 108 | from ("$projectDir/samples") { |
| 109 | exclude "**/build" |
Yigit Boyar | 2939c3b | 2015-04-23 15:03:56 -0700 | [diff] [blame] | 110 | exclude "**/local.properties" |
Yigit Boyar | c64ae35 | 2015-04-21 14:05:41 -0700 | [diff] [blame] | 111 | } |
| 112 | into "${config.eapOutDir}/samples" |
| 113 | } |
| 114 | |
| 115 | |
| 116 | task copyMavenRepoToEap(type : Copy) { |
| 117 | mustRunAfter deleteEap |
| 118 | dependsOn rebuildRepo |
| 119 | from(config.mavenRepoDir) |
| 120 | into "${config.eapOutDir}/${config.mavenRepoName}" |
| 121 | } |
| 122 | |
| 123 | tasks.create(name : 'createEapConfigFile') << { |
| 124 | def propsFile = new File("${config.eapOutDir}/databinding.properties") |
| 125 | Properties props = new Properties() |
Yigit Boyar | 9399cb4 | 2015-05-16 15:42:45 -0700 | [diff] [blame] | 126 | props.setProperty('version', config.version) |
Yigit Boyar | c64ae35 | 2015-04-21 14:05:41 -0700 | [diff] [blame] | 127 | props.setProperty('mavenRepoName', config.mavenRepoName) |
| 128 | props.store(propsFile.newWriter(), null) |
| 129 | } |
| 130 | |
| 131 | |
| 132 | task batchEAP() { |
| 133 | dependsOn deleteEap |
| 134 | dependsOn copyMavenRepoToEap |
| 135 | dependsOn copySamplesToEap |
| 136 | dependsOn createEapConfigFile |
Yigit Boyar | c64ae35 | 2015-04-21 14:05:41 -0700 | [diff] [blame] | 137 | } |