SEC-2096: Added release-checks

This commit is contained in:
Rob Winch 2012-12-13 10:04:52 -06:00
parent ebb82e1aa9
commit 7edb1089a8
2 changed files with 35 additions and 0 deletions

View File

@ -11,6 +11,8 @@ allprojects {
repositories {
maven { url "http://repo.springsource.org/libs-snapshot" }
}
}
// Set up different subproject lists for individual configuration
@ -26,6 +28,7 @@ configure(subprojects - coreModuleProjects) {
configure(javaProjects) {
apply from: "$rootDir/gradle/javaprojects.gradle"
apply from: "$rootDir/gradle/release-checks.gradle"
}
configure(coreModuleProjects) {

View File

@ -0,0 +1,32 @@
task checkDependencies << {
verifyNoDependenciesMatchingVersion(".*-SNAPSHOT")
if(releaseBuild) {
verifyNoDependenciesMatchingVersion(".*M.*")
verifyNoDependenciesMatchingVersion(".*RC.*")
}
}
task checkRepositories << {
verifyNoRepositoriesMatching(".*snapshot.*")
if(releaseBuild) {
verifyNoRepositoriesMatching(".*milestone.*")
}
}
if(!snapshotBuild) {
tasks.findByPath('check')?.dependsOn checkRepositories, checkDependencies
}
def verifyNoDependenciesMatchingVersion(def pattern) {
def dependencies = configurations.all*.allDependencies*.findAll { d -> d.version?.matches(pattern) }.flatten().toSet().join("\n ")
if(dependencies) {
throw new GradleException("${project.name} cannot have dependencies with a version that matches $pattern when its version is ${project.version}. Got\n $dependencies")
}
}
def verifyNoRepositoriesMatching(def pattern) {
def matchingRepositories = repositories.findAll { r -> r.url?.toString()?.matches(pattern) }.flatten().collect { it.url }.toSet().join("\n ")
if(matchingRepositories) {
throw new GradleException("${project.name} cannot have repositories with a version that matches $pattern when its version is ${project.version}. Got\n $matchingRepositories")
}
}