Browse Source

SEC-2096: Added release-checks

Rob Winch 12 năm trước cách đây
mục cha
commit
7edb1089a8
2 tập tin đã thay đổi với 35 bổ sung0 xóa
  1. 3 0
      build.gradle
  2. 32 0
      gradle/release-checks.gradle

+ 3 - 0
build.gradle

@@ -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) {

+ 32 - 0
gradle/release-checks.gradle

@@ -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")
+    }
+}