From afb60d61610739cf5957f7d6844c7c26dcfd91c7 Mon Sep 17 00:00:00 2001 From: Scott Frederick Date: Mon, 1 Mar 2021 15:22:15 -0600 Subject: [PATCH] Add tests for Gradle examples used in plugin docs Fixes gh-25468 --- .../packaging/boot-build-image-builder.gradle | 7 ++++ .../boot-build-image-builder.gradle.kts | 8 ++++ .../boot-build-image-docker-auth-token.gradle | 6 +++ ...t-build-image-docker-auth-token.gradle.kts | 6 +++ .../boot-build-image-docker-auth-user.gradle | 9 +++++ ...ot-build-image-docker-auth-user.gradle.kts | 9 +++++ .../boot-build-image-docker-host.gradle | 8 ++++ .../boot-build-image-docker-host.gradle.kts | 10 ++++- .../docs/PackagingDocumentationTests.java | 39 +++++++++++++++++-- 9 files changed, 97 insertions(+), 5 deletions(-) diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-builder.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-builder.gradle index 4bb003ea60d..50ca6e1b7db 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-builder.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-builder.gradle @@ -13,3 +13,10 @@ bootBuildImage { runImage = "mine/java-cnb-run" } // end::builder[] + +task bootBuildImageBuilder { + doFirst { + println("builder=${tasks.bootBuildImage.builder}") + println("runImage=${tasks.bootBuildImage.runImage}") + } +} diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-builder.gradle.kts b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-builder.gradle.kts index d42323a0f56..c180ca27ff1 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-builder.gradle.kts +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-builder.gradle.kts @@ -1,4 +1,5 @@ import org.springframework.boot.gradle.tasks.bundling.BootJar +import org.springframework.boot.gradle.tasks.bundling.BootBuildImage plugins { java @@ -15,3 +16,10 @@ tasks.getByName("bootBuildImage") { runImage = "mine/java-cnb-run" } // end::builder[] + +tasks.register("bootBuildImageBuilder") { + doFirst { + println("builder=${tasks.getByName("bootBuildImage").builder}") + println("runImage=${tasks.getByName("bootBuildImage").runImage}") + } +} diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-auth-token.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-auth-token.gradle index ebc3efb6a50..4ebde0a9498 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-auth-token.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-auth-token.gradle @@ -16,3 +16,9 @@ bootBuildImage { } } // end::docker-auth-token[] + +task bootBuildImageDocker { + doFirst { + println("token=${tasks.bootBuildImage.docker.builderRegistry.token}") + } +} diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-auth-token.gradle.kts b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-auth-token.gradle.kts index 4f5e633fd33..a218863cf1d 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-auth-token.gradle.kts +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-auth-token.gradle.kts @@ -19,3 +19,9 @@ tasks.getByName("bootBuildImage") { } } // end::docker-auth-token[] + +tasks.register("bootBuildImageDocker") { + doFirst { + println("token=${tasks.getByName("bootBuildImage").docker.builderRegistry.token}") + } +} diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-auth-user.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-auth-user.gradle index 47606523bb9..955cd8993b7 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-auth-user.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-auth-user.gradle @@ -19,3 +19,12 @@ bootBuildImage { } } // end::docker-auth-user[] + +task bootBuildImageDocker { + doFirst { + println("username=${tasks.bootBuildImage.docker.builderRegistry.username}") + println("password=${tasks.bootBuildImage.docker.builderRegistry.password}") + println("url=${tasks.bootBuildImage.docker.builderRegistry.url}") + println("email=${tasks.bootBuildImage.docker.builderRegistry.email}") + } +} diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-auth-user.gradle.kts b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-auth-user.gradle.kts index 6ddcd1918d8..7745b7d59ac 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-auth-user.gradle.kts +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-auth-user.gradle.kts @@ -22,3 +22,12 @@ tasks.getByName("bootBuildImage") { } } // end::docker-auth-user[] + +tasks.register("bootBuildImageDocker") { + doFirst { + println("username=${tasks.getByName("bootBuildImage").docker.builderRegistry.username}") + println("password=${tasks.getByName("bootBuildImage").docker.builderRegistry.password}") + println("url=${tasks.getByName("bootBuildImage").docker.builderRegistry.url}") + println("email=${tasks.getByName("bootBuildImage").docker.builderRegistry.email}") + } +} diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-host.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-host.gradle index d06629c83f3..890f838cebf 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-host.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-host.gradle @@ -16,3 +16,11 @@ bootBuildImage { } } // end::docker-host[] + +task bootBuildImageDocker { + doFirst { + println("host=${tasks.bootBuildImage.docker.host}") + println("tlsVerify=${tasks.bootBuildImage.docker.tlsVerify}") + println("certPath=${tasks.bootBuildImage.docker.certPath}") + } +} diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-host.gradle.kts b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-host.gradle.kts index 8604e79b3e8..5adeb830b2c 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-host.gradle.kts +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/gradle/packaging/boot-build-image-docker-host.gradle.kts @@ -14,8 +14,16 @@ tasks.getByName("bootJar") { tasks.getByName("bootBuildImage") { docker { host = "tcp://192.168.99.100:2376" - tlsVerify = true + isTlsVerify = true certPath = "/home/users/.minikube/certs" } } // end::docker-host[] + +tasks.register("bootBuildImageDocker") { + doFirst { + println("host=${tasks.getByName("bootBuildImage").docker.host}") + println("tlsVerify=${tasks.getByName("bootBuildImage").docker.isTlsVerify}") + println("certPath=${tasks.getByName("bootBuildImage").docker.certPath}") + } +} diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/docs/PackagingDocumentationTests.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/docs/PackagingDocumentationTests.java index fe8469a2b5d..8a1fb6ba5e1 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/docs/PackagingDocumentationTests.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/docs/PackagingDocumentationTests.java @@ -43,6 +43,7 @@ import static org.assertj.core.api.Assertions.assertThat; * * @author Andy Wilkinson * @author Jean-Baptiste Nizet + * @author Scott Frederick */ @ExtendWith(GradleMultiDslExtension.class) class PackagingDocumentationTests { @@ -221,14 +222,21 @@ class PackagingDocumentationTests { } @TestTemplate - void bootBuildImageWithCustomBuildpackJvmVersion() throws IOException { + void bootBuildImageWithBuilder() { + BuildResult result = this.gradleBuild.script("src/docs/gradle/packaging/boot-build-image-builder") + .build("bootBuildImageBuilder"); + assertThat(result.getOutput()).contains("builder=mine/java-cnb-builder").contains("runImage=mine/java-cnb-run"); + } + + @TestTemplate + void bootBuildImageWithCustomBuildpackJvmVersion() { BuildResult result = this.gradleBuild.script("src/docs/gradle/packaging/boot-build-image-env") .build("bootBuildImageEnvironment"); assertThat(result.getOutput()).contains("BP_JVM_VERSION=8.*"); } @TestTemplate - void bootBuildImageWithCustomProxySettings() throws IOException { + void bootBuildImageWithCustomProxySettings() { BuildResult result = this.gradleBuild.script("src/docs/gradle/packaging/boot-build-image-env-proxy") .build("bootBuildImageEnvironment"); assertThat(result.getOutput()).contains("HTTP_PROXY=http://proxy.example.com") @@ -236,14 +244,37 @@ class PackagingDocumentationTests { } @TestTemplate - void bootBuildImageWithCustomImageName() throws IOException { + void bootBuildImageWithCustomImageName() { BuildResult result = this.gradleBuild.script("src/docs/gradle/packaging/boot-build-image-name") .build("bootBuildImageName"); assertThat(result.getOutput()).contains("example.com/library/" + this.gradleBuild.getProjectDir().getName()); } @TestTemplate - void bootBuildImagePublish() throws IOException { + void bootBuildImageWithDockerHost() { + BuildResult result = this.gradleBuild.script("src/docs/gradle/packaging/boot-build-image-docker-host") + .build("bootBuildImageDocker"); + assertThat(result.getOutput()).contains("host=tcp://192.168.99.100:2376").contains("tlsVerify=true") + .contains("certPath=/home/users/.minikube/certs"); + } + + @TestTemplate + void bootBuildImageWithDockerUserAuth() { + BuildResult result = this.gradleBuild.script("src/docs/gradle/packaging/boot-build-image-docker-auth-user") + .build("bootBuildImageDocker"); + assertThat(result.getOutput()).contains("username=user").contains("password=secret") + .contains("url=https://docker.example.com/v1/").contains("email=user@example.com"); + } + + @TestTemplate + void bootBuildImageWithDockerTokenAuth() { + BuildResult result = this.gradleBuild.script("src/docs/gradle/packaging/boot-build-image-docker-auth-token") + .build("bootBuildImageDocker"); + assertThat(result.getOutput()).contains("token=9cbaf023786cd7..."); + } + + @TestTemplate + void bootBuildImagePublish() { BuildResult result = this.gradleBuild.script("src/docs/gradle/packaging/boot-build-image-publish") .build("bootBuildImagePublish"); assertThat(result.getOutput()).contains("true");