release-checks.gradle 1.3 KB

1234567891011121314151617181920212223242526272829303132
  1. task checkDependencies << {
  2. verifyNoDependenciesMatchingVersion(".*-SNAPSHOT")
  3. if(releaseBuild) {
  4. verifyNoDependenciesMatchingVersion(".*M.*")
  5. verifyNoDependenciesMatchingVersion(".*RC.*")
  6. }
  7. }
  8. task checkRepositories << {
  9. verifyNoRepositoriesMatching(".*snapshot.*")
  10. if(releaseBuild) {
  11. verifyNoRepositoriesMatching(".*milestone.*")
  12. }
  13. }
  14. if(!snapshotBuild) {
  15. tasks.findByPath('check')?.dependsOn checkRepositories, checkDependencies
  16. }
  17. def verifyNoDependenciesMatchingVersion(def pattern) {
  18. def dependencies = configurations.all*.allDependencies*.findAll { d -> d.version?.matches(pattern) }.flatten().toSet().join("\n ")
  19. if(dependencies) {
  20. throw new GradleException("${project.name} cannot have dependencies with a version that matches $pattern when its version is ${project.version}. Got\n $dependencies")
  21. }
  22. }
  23. def verifyNoRepositoriesMatching(def pattern) {
  24. def matchingRepositories = repositories.findAll { r -> r.url?.toString()?.matches(pattern) }.flatten().collect { it.url }.toSet().join("\n ")
  25. if(matchingRepositories) {
  26. throw new GradleException("${project.name} cannot have repositories with a version that matches $pattern when its version is ${project.version}. Got\n $matchingRepositories")
  27. }
  28. }