From af0cd029c757a1e5912b7ea2394919460cf6f9b7 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Fri, 24 Mar 2017 14:37:17 +0000 Subject: [PATCH] Ensure that samples' REST Docs version is updated before they are built --- .../build/SampleBuildConfigurer.groovy | 44 +++++++++++++------ samples/rest-assured/build.gradle | 2 +- samples/rest-notes-grails/build.gradle | 2 +- samples/rest-notes-slate/build.gradle | 2 +- samples/rest-notes-spring-data-rest/pom.xml | 2 +- .../rest-notes-spring-hateoas/build.gradle | 2 +- samples/testng/build.gradle | 2 +- 7 files changed, 36 insertions(+), 20 deletions(-) diff --git a/buildSrc/src/main/groovy/org/springframework/restdocs/build/SampleBuildConfigurer.groovy b/buildSrc/src/main/groovy/org/springframework/restdocs/build/SampleBuildConfigurer.groovy index 69b6f1fd..00903c64 100644 --- a/buildSrc/src/main/groovy/org/springframework/restdocs/build/SampleBuildConfigurer.groovy +++ b/buildSrc/src/main/groovy/org/springframework/restdocs/build/SampleBuildConfigurer.groovy @@ -1,5 +1,5 @@ /* - * Copyright 2014-2015 the original author or authors. + * Copyright 2014-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -51,32 +51,25 @@ public class SampleBuildConfigurer { sampleBuild.group = "Build" if (new File(sampleDir, 'build.gradle').isFile()) { + Task gradleVersionsUpdate = createGradleVersionsUpdate(project) + sampleBuild.dependsOn gradleVersionsUpdate if (build) { Task gradleBuild = createGradleBuild(project, dependencies) Task verifyIncludesTask = createVerifyIncludes(project, new File(sampleDir, 'build/asciidoc')) verifyIncludesTask.dependsOn gradleBuild sampleBuild.dependsOn verifyIncludesTask - } - sampleBuild.doFirst { - replaceVersion(new File(this.workingDir, 'build.gradle'), - "ext\\['spring-restdocs.version'\\] = '.*'", - "ext['spring-restdocs.version'] = '${project.version}'") - replaceVersion(new File(this.workingDir, 'build.gradle'), - "restDocsVersion = \".*\"", - "restDocsVersion = \"${project.version}\"") + gradleBuild.dependsOn gradleVersionsUpdate } } else if (new File(sampleDir, 'pom.xml').isFile()) { + Task mavenVersionsUpdate = createMavenVersionsUpdate(project) + sampleBuild.dependsOn mavenVersionsUpdate if (build) { Task mavenBuild = createMavenBuild(project, sampleDir, dependencies) Task verifyIncludesTask = createVerifyIncludes(project, new File(sampleDir, 'target/generated-docs')) verifyIncludesTask.dependsOn(mavenBuild) sampleBuild.dependsOn verifyIncludesTask - } - sampleBuild.doFirst { - replaceVersion(new File(this.workingDir, 'pom.xml'), - '.*', - "${project.version}") + mavenBuild.dependsOn mavenVersionsUpdate } } else { @@ -85,6 +78,29 @@ public class SampleBuildConfigurer { return sampleBuild } + private Task createMavenVersionsUpdate(Project project) { + Task mavenVersionsUpdate = project.tasks.create "${name}MavenVersionUpdates" + mavenVersionsUpdate.doFirst { + replaceVersion(new File(this.workingDir, 'pom.xml'), + '.*', + "${project.version}") + } + return mavenVersionsUpdate + } + + private Task createGradleVersionsUpdate(Project project) { + Task gradleVersionsUpdate = project.tasks.create "${name}GradleVersionUpdates" + gradleVersionsUpdate.doFirst { + replaceVersion(new File(this.workingDir, 'build.gradle'), + "ext\\['spring-restdocs.version'\\] = '.*'", + "ext['spring-restdocs.version'] = '${project.version}'") + replaceVersion(new File(this.workingDir, 'build.gradle'), + "restDocsVersion = \".*\"", + "restDocsVersion = \"${project.version}\"") + } + return gradleVersionsUpdate + } + private Task createMavenBuild(Project project, File sampleDir, Object... dependencies) { Task mavenBuild = project.tasks.create("${name}Maven", Exec) mavenBuild.description = "Builds the ${name} sample with Maven" diff --git a/samples/rest-assured/build.gradle b/samples/rest-assured/build.gradle index 6508143d..dc3ee9f5 100644 --- a/samples/rest-assured/build.gradle +++ b/samples/rest-assured/build.gradle @@ -30,7 +30,7 @@ ext { snippetsDir = file('build/generated-snippets') } -ext['spring-restdocs.version'] = '1.1.2.BUILD-SNAPSHOT' +ext['spring-restdocs.version'] = '1.1.3.BUILD-SNAPSHOT' dependencies { compile 'org.springframework.boot:spring-boot-starter-web' diff --git a/samples/rest-notes-grails/build.gradle b/samples/rest-notes-grails/build.gradle index 74a25c40..8bb691d9 100644 --- a/samples/rest-notes-grails/build.gradle +++ b/samples/rest-notes-grails/build.gradle @@ -31,7 +31,7 @@ apply plugin: "org.grails.grails-web" ext { grailsVersion = project.grailsVersion gradleWrapperVersion = project.gradleWrapperVersion - restDocsVersion = "1.1.2.BUILD-SNAPSHOT" + restDocsVersion = "1.1.3.BUILD-SNAPSHOT" snippetsDir = file('src/docs/generated-snippets') } diff --git a/samples/rest-notes-slate/build.gradle b/samples/rest-notes-slate/build.gradle index d0a05765..dd46d49c 100644 --- a/samples/rest-notes-slate/build.gradle +++ b/samples/rest-notes-slate/build.gradle @@ -26,7 +26,7 @@ ext { snippetsDir = file('build/generated-snippets') } -ext['spring-restdocs.version'] = '1.1.2.BUILD-SNAPSHOT' +ext['spring-restdocs.version'] = '1.1.3.BUILD-SNAPSHOT' dependencies { compile 'org.springframework.boot:spring-boot-starter-data-jpa' diff --git a/samples/rest-notes-spring-data-rest/pom.xml b/samples/rest-notes-spring-data-rest/pom.xml index d01f29d7..c06ac014 100644 --- a/samples/rest-notes-spring-data-rest/pom.xml +++ b/samples/rest-notes-spring-data-rest/pom.xml @@ -18,7 +18,7 @@ UTF-8 1.7 - 1.1.2.BUILD-SNAPSHOT + 1.1.3.BUILD-SNAPSHOT diff --git a/samples/rest-notes-spring-hateoas/build.gradle b/samples/rest-notes-spring-hateoas/build.gradle index b1a9aa41..ca1e0126 100644 --- a/samples/rest-notes-spring-hateoas/build.gradle +++ b/samples/rest-notes-spring-hateoas/build.gradle @@ -30,7 +30,7 @@ ext { snippetsDir = file('build/generated-snippets') } -ext['spring-restdocs.version'] = '1.1.2.BUILD-SNAPSHOT' +ext['spring-restdocs.version'] = '1.1.3.BUILD-SNAPSHOT' dependencies { compile 'org.springframework.boot:spring-boot-starter-data-jpa' diff --git a/samples/testng/build.gradle b/samples/testng/build.gradle index 723b2430..7f352e03 100644 --- a/samples/testng/build.gradle +++ b/samples/testng/build.gradle @@ -29,7 +29,7 @@ targetCompatibility = 1.7 ext { snippetsDir = file('build/generated-snippets') } -ext['spring-restdocs.version'] = '1.1.2.BUILD-SNAPSHOT' +ext['spring-restdocs.version'] = '1.1.3.BUILD-SNAPSHOT' dependencies { compile 'org.springframework.boot:spring-boot-starter-web'