build.gradle revision ae161289a90f6ac69ffe6411ac8c09653c81d04d
1Properties databindingProperties = new Properties() 2databindingProperties.load(new FileInputStream("${projectDir}/databinding.properties")) 3databindingProperties.mavenRepoDir = "${projectDir}/${databindingProperties.mavenRepoName}" 4databindingProperties.prebuildFolder = "${projectDir}/${databindingProperties.prebuildFolderName}" + 5 "/${databindingProperties.releaseVersion}" 6 7ext.config = databindingProperties 8 9println "local maven repo is ${ext.config.mavenRepoDir}." 10println "local pre-build folder is ${ext.config.prebuildFolder}." 11 12new File(ext.config.mavenRepoDir).mkdir() 13new File(ext.config.prebuildFolder).mkdir() 14 15subprojects { 16 apply plugin: 'maven' 17 group = config.group 18 version = config.snapshotVersion 19 repositories { 20 mavenCentral() 21 maven { 22 url "file://${config.mavenRepoDir}" 23 } 24 } 25 uploadArchives { 26 repositories { 27 mavenDeployer { 28 repository(url: "file://${config.mavenRepoDir}") 29 } 30 } 31 } 32} 33 34task deleteRepo(type: Delete) { 35 delete "${config.mavenRepoDir}" 36} 37 38task deletePrebuildFolder(type: Delete) { 39 delete "${config.prebuildFolder}" 40} 41 42def buildExtensionsTask = project.tasks.create "buildExtensionsTask", Exec 43buildExtensionsTask.workingDir file('extensions').getAbsolutePath() 44buildExtensionsTask.commandLine './gradlew' 45buildExtensionsTask.args 'clean', 'uploadArchives', '--info', '--stacktrace' 46buildExtensionsTask.dependsOn subprojects.uploadArchives 47 48def prepareExtensionPrebuilds = project.tasks.create "prepareExtensionPrebuilds", Exec 49prepareExtensionPrebuilds.workingDir file('extensions').getAbsolutePath() 50prepareExtensionPrebuilds.commandLine './gradlew' 51prepareExtensionPrebuilds.args 'clean', 'preparePrebuilds', '--info', '--stacktrace' 52prepareExtensionPrebuilds.dependsOn subprojects.uploadArchives 53 54file('integration-tests').listFiles().findAll { it.isDirectory() }.each { 55 println("Creating run test task for ${it.getAbsolutePath()}.") 56 def testTask = project.tasks.create "runTestsOf${it.getName().capitalize()}", Exec 57 testTask.workingDir it.getAbsolutePath() 58 //on linux 59 testTask.commandLine './gradlew' 60 testTask.args 'clean', 'connectedCheck', '--info', '--stacktrace' 61 testTask.dependsOn subprojects.uploadArchives 62 testTask.dependsOn buildExtensionsTask 63} 64 65task runIntegrationTests { 66 dependsOn tasks.findAll { task -> task.name.startsWith('runTestsOf') } 67} 68 69task runAllTests { 70 dependsOn runIntegrationTests 71} 72 73task preparePrebuilds() { 74 dependsOn deletePrebuildFolder 75 dependsOn prepareExtensionPrebuilds 76} 77 78allprojects { 79 afterEvaluate { project -> 80 runAllTests.dependsOn project.tasks.findAll {task -> task.name.equals('test')} 81 runAllTests.dependsOn project.tasks.findAll {task -> task.name.equals('connectedCheck')} 82 preparePrebuilds.dependsOn project.tasks.findAll {task -> task.name.startsWith('prebuild')} 83 } 84} 85 86subprojects.uploadArchives.each { it.shouldRunAfter deleteRepo } 87subprojects.uploadArchives.each { it.shouldRunAfter deletePrebuildFolder } 88buildExtensionsTask.shouldRunAfter deleteRepo 89tasks['runTestsOfMultiModuleTestApp'].dependsOn tasks['runTestsOfIndependentLibrary'] 90 91 92task rebuildRepo() { 93 dependsOn deleteRepo 94 dependsOn subprojects.uploadArchives 95 dependsOn buildExtensionsTask 96} 97 98