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