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