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