blob: acf68f41908c59a36add17de99c95ebbe669125a [file] [log] [blame]
buildscript {
ext.rootFolder = project.projectDir
apply from: 'propLoader.gradle'
ext.addRepos(repositories)
if (ext.config.addRemoteRepos) {
dependencies {
classpath "com.android.databinding:localizemaven:${config.extraPluginsVersion}"
}
}
}
subprojects {
apply plugin: 'maven'
if (config.addRemoteRepos) {
apply plugin: 'com.android.databinding.localizemaven'
}
group = config.group
version = config.version
uploadArchives {
repositories {
mavenDeployer {
repository(url: "file://${config.mavenRepoDir}")
}
}
}
buildscript {
addRepos(repositories)
dependencies {
classpath "com.android.databinding:bintray:${config.extraPluginsVersion}"
}
}
}
if (config.addRemoteRepos) {
localizeMaven {
localRepoDir = file(config.megaRepoDir)
otherRepoDirs = config.localRepositories
}
}
task deleteRepo(type: Delete) {
delete "${config.mavenRepoDir}/${config.group.replace('.', '/')}"
}
task deletePrebuildFolder(type: Delete) {
delete "${config.prebuildFolder}"
}
task deleteEap(type: Delete) {
delete "${config.eapOutDir}"
}
def buildExtensionsTask = project.tasks.create "buildExtensionsTask", Exec
buildExtensionsTask.workingDir file('extensions').getAbsolutePath()
buildExtensionsTask.commandLine './gradlew'
buildExtensionsTask.args 'clean', 'uploadArchives', '--info', '--stacktrace'
buildExtensionsTask.dependsOn subprojects.uploadArchives
def prepareExtensionPrebuilds = project.tasks.create "prepareExtensionPrebuilds", Exec
prepareExtensionPrebuilds.workingDir file('extensions').getAbsolutePath()
prepareExtensionPrebuilds.commandLine './gradlew'
prepareExtensionPrebuilds.args 'clean', 'preparePrebuilds', '--info', '--stacktrace'
prepareExtensionPrebuilds.dependsOn subprojects.uploadArchives
file('integration-tests').listFiles().findAll { it.isDirectory() }.each {
println("Creating run test task for ${it.getAbsolutePath()}.")
def testTask = project.tasks.create "runTestsOf${it.getName().capitalize()}", Exec
testTask.workingDir it.getAbsolutePath()
//on linux
testTask.commandLine './gradlew'
testTask.args 'clean', 'connectedCheck', '--info', '--stacktrace'
testTask.dependsOn subprojects.uploadArchives
testTask.dependsOn buildExtensionsTask
}
task runIntegrationTests {
dependsOn tasks.findAll { task -> task.name.startsWith('runTestsOf') }
}
task runAllTests {
dependsOn runIntegrationTests
}
task preparePrebuilds() {
dependsOn deletePrebuildFolder
dependsOn prepareExtensionPrebuilds
}
allprojects {
afterEvaluate { project ->
runAllTests.dependsOn project.tasks.findAll {task -> task.name.equals('test')}
runAllTests.dependsOn project.tasks.findAll {task -> task.name.equals('connectedCheck')}
preparePrebuilds.dependsOn project.tasks.findAll {task -> task.name.startsWith('prebuild')}
}
}
subprojects.uploadArchives.each { it.shouldRunAfter deleteRepo }
subprojects.uploadArchives.each { it.shouldRunAfter deletePrebuildFolder }
buildExtensionsTask.shouldRunAfter deleteRepo
tasks['runTestsOfMultiModuleTestApp'].dependsOn tasks['runTestsOfIndependentLibrary']
task rebuildRepo() {
dependsOn deleteRepo
dependsOn subprojects.uploadArchives
dependsOn buildExtensionsTask
}
task copySamplesToEap(type : Copy) {
mustRunAfter deleteEap
from ("$projectDir/samples") {
exclude "**/build"
exclude "**/local.properties"
}
into "${config.eapOutDir}/samples"
}
task copyMavenRepoToEap(type : Copy) {
mustRunAfter deleteEap
dependsOn rebuildRepo
from(config.mavenRepoDir)
into "${config.eapOutDir}/${config.mavenRepoName}"
}
tasks.create(name : 'createEapConfigFile') << {
def propsFile = new File("${config.eapOutDir}/databinding.properties")
Properties props = new Properties()
props.setProperty('version', config.version)
props.setProperty('mavenRepoName', config.mavenRepoName)
props.store(propsFile.newWriter(), null)
}
task batchEAP() {
dependsOn deleteEap
dependsOn copyMavenRepoToEap
dependsOn copySamplesToEap
dependsOn createEapConfigFile
}