diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests.java index 83911e4aab..294cb92137 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests.java @@ -38,6 +38,8 @@ import org.gradle.testkit.runner.TaskOutcome; import org.junit.jupiter.api.TestTemplate; import org.junit.jupiter.api.condition.DisabledOnOs; import org.junit.jupiter.api.condition.OS; +import org.testcontainers.containers.GenericContainer; +import org.testcontainers.containers.wait.strategy.Wait; import org.springframework.boot.buildpack.platform.docker.DockerApi; import org.springframework.boot.buildpack.platform.docker.type.ImageName; @@ -68,10 +70,13 @@ class BootBuildImageIntegrationTests { String projectName = this.gradleBuild.getProjectDir().getName(); assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); assertThat(result.getOutput()).contains("docker.io/library/" + projectName); - assertThat(result.getOutput()).contains("---> Test Info buildpack building"); - assertThat(result.getOutput()).contains("env: BP_JVM_VERSION=8.*"); - assertThat(result.getOutput()).contains("---> Test Info buildpack done"); - removeImage(projectName); + ImageReference imageReference = ImageReference.of(ImageName.of(projectName)); + try (GenericContainer container = new GenericContainer<>(imageReference.toString())) { + container.waitingFor(Wait.forLogMessage("Launched\\n", 1)).start(); + } + finally { + new DockerApi().image().remove(imageReference, false); + } } @TestTemplate @@ -83,13 +88,16 @@ class BootBuildImageIntegrationTests { String projectName = this.gradleBuild.getProjectDir().getName(); assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); assertThat(result.getOutput()).contains("docker.io/library/" + projectName); - assertThat(result.getOutput()).contains("---> Test Info buildpack building"); - assertThat(result.getOutput()).contains("env: BP_JVM_VERSION=8.*"); - assertThat(result.getOutput()).contains("---> Test Info buildpack done"); File buildLibs = new File(this.gradleBuild.getProjectDir(), "build/libs"); assertThat(buildLibs.listFiles()) .containsExactly(new File(buildLibs, this.gradleBuild.getProjectDir().getName() + ".war")); - removeImage(projectName); + ImageReference imageReference = ImageReference.of(ImageName.of(projectName)); + try (GenericContainer container = new GenericContainer<>(imageReference.toString())) { + container.waitingFor(Wait.forLogMessage("Launched\\n", 1)).start(); + } + finally { + new DockerApi().image().remove(imageReference, false); + } } @TestTemplate @@ -100,12 +108,16 @@ class BootBuildImageIntegrationTests { String projectName = this.gradleBuild.getProjectDir().getName(); assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); assertThat(result.getOutput()).contains("docker.io/library/" + projectName); - assertThat(result.getOutput()).contains("---> Test Info buildpack building"); - assertThat(result.getOutput()).contains("---> Test Info buildpack done"); File buildLibs = new File(this.gradleBuild.getProjectDir(), "build/libs"); assertThat(buildLibs.listFiles()) .containsExactly(new File(buildLibs, this.gradleBuild.getProjectDir().getName() + ".war")); - removeImage(projectName); + ImageReference imageReference = ImageReference.of(ImageName.of(projectName)); + try (GenericContainer container = new GenericContainer<>(imageReference.toString())) { + container.waitingFor(Wait.forLogMessage("Launched\\n", 1)).start(); + } + finally { + new DockerApi().image().remove(imageReference, false); + } } @TestTemplate @@ -115,9 +127,13 @@ class BootBuildImageIntegrationTests { BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT"); assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); assertThat(result.getOutput()).contains("example/test-image-name"); - assertThat(result.getOutput()).contains("---> Test Info buildpack building"); - assertThat(result.getOutput()).contains("---> Test Info buildpack done"); - removeImage("example/test-image-name"); + ImageReference imageReference = ImageReference.of(ImageName.of("example/test-image-name")); + try (GenericContainer container = new GenericContainer<>(imageReference.toString())) { + container.waitingFor(Wait.forLogMessage("Launched\\n", 1)).start(); + } + finally { + new DockerApi().image().remove(imageReference, false); + } } @TestTemplate @@ -127,9 +143,13 @@ class BootBuildImageIntegrationTests { BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT"); assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); assertThat(result.getOutput()).contains("example/test-image-custom"); - assertThat(result.getOutput()).contains("---> Test Info buildpack building"); - assertThat(result.getOutput()).contains("---> Test Info buildpack done"); - removeImage("example/test-image-custom"); + ImageReference imageReference = ImageReference.of(ImageName.of("example/test-image-custom")); + try (GenericContainer container = new GenericContainer<>(imageReference.toString())) { + container.waitingFor(Wait.forLogMessage("Launched\\n", 1)).start(); + } + finally { + new DockerApi().image().remove(imageReference, false); + } } @TestTemplate @@ -137,13 +157,17 @@ class BootBuildImageIntegrationTests { writeMainClass(); writeLongNameResource(); BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT", - "--imageName=example/test-image-cmd", "--builder=springci/spring-boot-cnb-builder:0.0.1", - "--runImage=paketobuildpacks/run:tiny-cnb"); + "--imageName=example/test-image-cmd", "--builder=paketobuildpacks/builder:full", + "--runImage=paketobuildpacks/run:full-cnb"); assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); assertThat(result.getOutput()).contains("example/test-image-cmd"); - assertThat(result.getOutput()).contains("---> Test Info buildpack building"); - assertThat(result.getOutput()).contains("---> Test Info buildpack done"); - removeImage("example/test-image-cmd"); + ImageReference imageReference = ImageReference.of(ImageName.of("example/test-image-cmd")); + try (GenericContainer container = new GenericContainer<>(imageReference.toString())) { + container.waitingFor(Wait.forLogMessage("Launched\\n", 1)).start(); + } + finally { + new DockerApi().image().remove(imageReference, false); + } } @TestTemplate @@ -151,13 +175,24 @@ class BootBuildImageIntegrationTests { writeMainClass(); writeLongNameResource(); String projectName = this.gradleBuild.getProjectDir().getName(); + ImageReference imageReference = ImageReference.of(ImageName.of(projectName)); + BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=ALWAYS"); assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); assertThat(result.getOutput()).contains("Pulled builder image").contains("Pulled run image"); + try (GenericContainer container = new GenericContainer<>(imageReference.toString())) { + container.waitingFor(Wait.forLogMessage("Launched\\n", 1)).start(); + } + result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT"); assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); assertThat(result.getOutput()).doesNotContain("Pulled builder image").doesNotContain("Pulled run image"); - removeImage(projectName); + try (GenericContainer container = new GenericContainer<>(imageReference.toString())) { + container.waitingFor(Wait.forLogMessage("Launched\\n", 1)).start(); + } + finally { + new DockerApi().image().remove(imageReference, false); + } } @TestTemplate @@ -168,9 +203,13 @@ class BootBuildImageIntegrationTests { String projectName = this.gradleBuild.getProjectDir().getName(); assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); assertThat(result.getOutput()).contains("docker.io/library/" + projectName); - assertThat(result.getOutput()).contains("---> Test Info buildpack building") - .contains("---> Test Info buildpack done"); - removeImage(projectName); + ImageReference imageReference = ImageReference.of(ImageName.of(projectName)); + try (GenericContainer container = new GenericContainer<>(imageReference.toString())) { + container.waitingFor(Wait.forLogMessage("Launched\\n", 1)).start(); + } + finally { + new DockerApi().image().remove(imageReference, false); + } } @TestTemplate @@ -181,10 +220,11 @@ class BootBuildImageIntegrationTests { writeBuildpackContent(); BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT"); String projectName = this.gradleBuild.getProjectDir().getName(); + ImageReference imageReference = ImageReference.of(ImageName.of(projectName)); assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); assertThat(result.getOutput()).contains("docker.io/library/" + projectName); assertThat(result.getOutput()).contains("---> Hello World buildpack"); - removeImage(projectName); + new DockerApi().image().remove(imageReference, false); } @TestTemplate @@ -196,10 +236,11 @@ class BootBuildImageIntegrationTests { tarGzipBuildpackContent(); BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT"); String projectName = this.gradleBuild.getProjectDir().getName(); + ImageReference imageReference = ImageReference.of(ImageName.of(projectName)); assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); assertThat(result.getOutput()).contains("docker.io/library/" + projectName); assertThat(result.getOutput()).contains("---> Hello World buildpack"); - removeImage(projectName); + new DockerApi().image().remove(imageReference, false); } @TestTemplate @@ -210,24 +251,24 @@ class BootBuildImageIntegrationTests { String projectName = this.gradleBuild.getProjectDir().getName(); assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); assertThat(result.getOutput()).contains("docker.io/library/" + projectName); - removeImage(projectName); + ImageReference imageReference = ImageReference.of(ImageName.of(projectName)); + try (GenericContainer container = new GenericContainer<>(imageReference.toString())) { + container.waitingFor(Wait.forLogMessage("Launched\\n", 1)).start(); + } + finally { + new DockerApi().image().remove(imageReference, false); + } } @TestTemplate - void buildsImageWithBinding() throws IOException { + void failsWithBindingContainingInvalidCertificate() throws IOException { writeMainClass(); writeLongNameResource(); writeCertificateBindingFiles(); - BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT"); - String projectName = this.gradleBuild.getProjectDir().getName(); - assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); - assertThat(result.getOutput()).contains("docker.io/library/" + projectName); - assertThat(result.getOutput()).contains("---> Test Info buildpack building"); - assertThat(result.getOutput()).contains("binding: certificates/type=ca-certificates"); - assertThat(result.getOutput()).contains("binding: certificates/test1.crt=---certificate one---"); - assertThat(result.getOutput()).contains("binding: certificates/test2.crt=---certificate two---"); - assertThat(result.getOutput()).contains("---> Test Info buildpack done"); - removeImage(projectName); + BuildResult result = this.gradleBuild.buildAndFail("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT"); + assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.FAILED); + assertThat(result.getOutput()).contains("failed to decode certificate") + .contains("/platform/bindings/certificates/test.crt"); } @TestTemplate @@ -245,7 +286,6 @@ class BootBuildImageIntegrationTests { writeLongNameResource(); BuildResult result = this.gradleBuild.buildAndFail("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT"); assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.FAILED); - assertThat(result.getOutput()).contains("Forced builder failure"); assertThat(result.getOutput()).containsPattern("Builder lifecycle '.*' failed with status code"); } @@ -370,19 +410,10 @@ class BootBuildImageIntegrationTests { try (PrintWriter writer = new PrintWriter(new FileWriter(type))) { writer.print("ca-certificates"); } - File cert1 = new File(bindingDir, "test1.crt"); - try (PrintWriter writer = new PrintWriter(new FileWriter(cert1))) { - writer.println("---certificate one---"); + File cert = new File(bindingDir, "test.crt"); + try (PrintWriter writer = new PrintWriter(new FileWriter(cert))) { + writer.println("not a valid certificate"); } - File cert2 = new File(bindingDir, "test2.crt"); - try (PrintWriter writer = new PrintWriter(new FileWriter(cert2))) { - writer.println("---certificate two---"); - } - } - - private void removeImage(String name) throws IOException { - ImageReference imageReference = ImageReference.of(ImageName.of(name)); - new DockerApi().image().remove(imageReference, false); } } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithBuildpackFromBuilder.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithBuildpackFromBuilder.gradle index d34f17862d..7f72543895 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithBuildpackFromBuilder.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithBuildpackFromBuilder.gradle @@ -7,6 +7,5 @@ sourceCompatibility = '1.8' targetCompatibility = '1.8' bootBuildImage { - builder = "springci/spring-boot-cnb-builder:0.0.1" - buildpacks = [ "spring-boot/test-info" ] + buildpacks = [ "paketo-buildpacks/java" ] } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithBuildpackFromDirectory.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithBuildpackFromDirectory.gradle index 80490bf43f..dcdc9052e5 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithBuildpackFromDirectory.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithBuildpackFromDirectory.gradle @@ -7,6 +7,5 @@ sourceCompatibility = '1.8' targetCompatibility = '1.8' bootBuildImage { - builder = "springci/spring-boot-cnb-builder:0.0.1" buildpacks = [ "file://${projectDir}/buildpack/hello-world" ] } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithBuildpackFromTarGzip.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithBuildpackFromTarGzip.gradle index 8313a0bf31..77266efffe 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithBuildpackFromTarGzip.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithBuildpackFromTarGzip.gradle @@ -7,6 +7,5 @@ sourceCompatibility = '1.8' targetCompatibility = '1.8' bootBuildImage { - builder = "springci/spring-boot-cnb-builder:0.0.1" buildpacks = [ "file://${projectDir}/hello-world.tgz" ] } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithCommandLineOptions.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithCommandLineOptions.gradle deleted file mode 100644 index 8971742147..0000000000 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithCommandLineOptions.gradle +++ /dev/null @@ -1,7 +0,0 @@ -plugins { - id 'java' - id 'org.springframework.boot' version '{version}' -} - -sourceCompatibility = '1.8' -targetCompatibility = '1.8' diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithCustomBuilderAndRunImage.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithCustomBuilderAndRunImage.gradle index 621742d3ba..9878fe16db 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithCustomBuilderAndRunImage.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithCustomBuilderAndRunImage.gradle @@ -8,6 +8,6 @@ targetCompatibility = '1.8' bootBuildImage { imageName = "example/test-image-custom" - builder = "springci/spring-boot-cnb-builder:0.0.1" - runImage = "paketobuildpacks/run:tiny-cnb" + builder = "paketobuildpacks/builder:full" + runImage = "paketobuildpacks/run:full-cnb" } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithCustomName.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithCustomName.gradle index c78bd4f43c..e306457624 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithCustomName.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithCustomName.gradle @@ -8,5 +8,4 @@ targetCompatibility = '1.8' bootBuildImage { imageName = "example/test-image-name" - builder = "springci/spring-boot-cnb-builder:0.0.1" } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithWarPackagingAndJarConfiguration.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithWarPackagingAndJarConfiguration.gradle index 5165f759d0..5aa8c27efe 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithWarPackagingAndJarConfiguration.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithWarPackagingAndJarConfiguration.gradle @@ -9,7 +9,3 @@ bootBuildImage { sourceCompatibility = '1.8' targetCompatibility = '1.8' - -bootBuildImage { - builder = "springci/spring-boot-cnb-builder:0.0.1" -} \ No newline at end of file diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithBinding.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-failsWithBindingContainingInvalidCertificate.gradle similarity index 82% rename from spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithBinding.gradle rename to spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-failsWithBindingContainingInvalidCertificate.gradle index 18621b1ba2..c20cac9d30 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithBinding.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-failsWithBindingContainingInvalidCertificate.gradle @@ -7,6 +7,5 @@ sourceCompatibility = '1.8' targetCompatibility = '1.8' bootBuildImage { - builder = "springci/spring-boot-cnb-builder:0.0.1" bindings = [ "${projectDir}/bindings/ca-certificates:/platform/bindings/certificates" ] } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-failsWithBuilderError.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-failsWithBuilderError.gradle index 2873acc634..fb706c51ca 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-failsWithBuilderError.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-failsWithBuilderError.gradle @@ -7,6 +7,5 @@ sourceCompatibility = '1.8' targetCompatibility = '1.8' bootBuildImage { - builder = "springci/spring-boot-cnb-builder:0.0.1" - environment = ["FORCE_FAILURE": "true"] + environment = ["BP_JVM_VERSION": "13.9.9"] } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-failsWithBuildpackNotInBuilder.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-failsWithBuildpackNotInBuilder.gradle index 61e35fb1a2..bcd932c770 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-failsWithBuildpackNotInBuilder.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-failsWithBuildpackNotInBuilder.gradle @@ -7,6 +7,5 @@ sourceCompatibility = '1.8' targetCompatibility = '1.8' bootBuildImage { - builder = "springci/spring-boot-cnb-builder:0.0.1" buildpacks = [ "urn:cnb:builder:example/does-not-exist:0.0.1" ] } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests.gradle index f34b7e643a..5e0df9a58c 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests.gradle @@ -9,7 +9,3 @@ if (project.hasProperty('applyWarPlugin')) { sourceCompatibility = '1.8' targetCompatibility = '1.8' - -bootBuildImage { - builder = "springci/spring-boot-cnb-builder:0.0.1" -} diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/java/org/springframework/boot/maven/BuildImageTests.java b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/java/org/springframework/boot/maven/BuildImageTests.java index c0753db1d7..896fae15b8 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/java/org/springframework/boot/maven/BuildImageTests.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/java/org/springframework/boot/maven/BuildImageTests.java @@ -25,6 +25,8 @@ import java.util.Random; import org.junit.jupiter.api.TestTemplate; import org.junit.jupiter.api.extension.ExtendWith; +import org.testcontainers.containers.GenericContainer; +import org.testcontainers.containers.wait.strategy.Wait; import org.springframework.boot.buildpack.platform.docker.DockerApi; import org.springframework.boot.buildpack.platform.docker.type.ImageName; @@ -54,9 +56,15 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests { assertThat(original).doesNotExist(); assertThat(buildLog(project)).contains("Building image") .contains("docker.io/library/build-image:0.0.1.BUILD-SNAPSHOT") - .contains("---> Test Info buildpack building").contains("env: BP_JVM_VERSION=8.*") - .contains("---> Test Info buildpack done").contains("Successfully built image"); - removeImage("build-image", "0.0.1.BUILD-SNAPSHOT"); + .contains("Successfully built image"); + ImageReference imageReference = ImageReference.of(ImageName.of("build-image"), + "0.0.1.BUILD-SNAPSHOT"); + try (GenericContainer container = new GenericContainer<>(imageReference.toString())) { + container.waitingFor(Wait.forLogMessage("Launched\\n", 1)).start(); + } + finally { + removeImage(imageReference); + } }); } @@ -71,9 +79,15 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests { assertThat(classifier).doesNotExist(); assertThat(buildLog(project)).contains("Building image") .contains("docker.io/library/build-image-classifier:0.0.1.BUILD-SNAPSHOT") - .contains("---> Test Info buildpack building").contains("env: BP_JVM_VERSION=8.*") - .contains("---> Test Info buildpack done").contains("Successfully built image"); - removeImage("build-image-classifier", "0.0.1.BUILD-SNAPSHOT"); + .contains("Successfully built image"); + ImageReference imageReference = ImageReference.of(ImageName.of("build-image-classifier"), + "0.0.1.BUILD-SNAPSHOT"); + try (GenericContainer container = new GenericContainer<>(imageReference.toString())) { + container.waitingFor(Wait.forLogMessage("Launched\\n", 1)).start(); + } + finally { + removeImage(imageReference); + } }); } @@ -90,9 +104,15 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests { assertThat(original).doesNotExist(); assertThat(buildLog(project)).contains("Building image") .contains("docker.io/library/build-image-classifier-source:0.0.1.BUILD-SNAPSHOT") - .contains("---> Test Info buildpack building").contains("---> Test Info buildpack done") .contains("Successfully built image"); - removeImage("build-image-classifier-source", "0.0.1.BUILD-SNAPSHOT"); + ImageReference imageReference = ImageReference.of(ImageName.of("build-image-classifier-source"), + "0.0.1.BUILD-SNAPSHOT"); + try (GenericContainer container = new GenericContainer<>(imageReference.toString())) { + container.waitingFor(Wait.forLogMessage("Launched\\n", 1)).start(); + } + finally { + removeImage(imageReference); + } }); } @@ -108,9 +128,15 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests { assertThat(original).isFile(); assertThat(buildLog(project)).contains("Building image") .contains("docker.io/library/build-image-with-repackage:0.0.1.BUILD-SNAPSHOT") - .contains("---> Test Info buildpack building").contains("---> Test Info buildpack done") .contains("Successfully built image"); - removeImage("build-image-with-repackage", "0.0.1.BUILD-SNAPSHOT"); + ImageReference imageReference = ImageReference.of(ImageName.of("build-image-with-repackage"), + "0.0.1.BUILD-SNAPSHOT"); + try (GenericContainer container = new GenericContainer<>(imageReference.toString())) { + container.waitingFor(Wait.forLogMessage("Launched\\n", 1)).start(); + } + finally { + removeImage(imageReference); + } }); } @@ -127,9 +153,15 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests { assertThat(original).isFile(); assertThat(buildLog(project)).contains("Building image") .contains("docker.io/library/build-image-classifier-with-repackage:0.0.1.BUILD-SNAPSHOT") - .contains("---> Test Info buildpack building").contains("---> Test Info buildpack done") .contains("Successfully built image"); - removeImage("build-image-classifier-with-repackage", "0.0.1.BUILD-SNAPSHOT"); + ImageReference imageReference = ImageReference + .of(ImageName.of("build-image-classifier-with-repackage"), "0.0.1.BUILD-SNAPSHOT"); + try (GenericContainer container = new GenericContainer<>(imageReference.toString())) { + container.waitingFor(Wait.forLogMessage("Launched\\n", 1)).start(); + } + finally { + removeImage(imageReference); + } }); } @@ -146,9 +178,15 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests { assertThat(original).isFile(); assertThat(buildLog(project)).contains("Building image").contains( "docker.io/library/build-image-classifier-source-with-repackage:0.0.1.BUILD-SNAPSHOT") - .contains("---> Test Info buildpack building").contains("---> Test Info buildpack done") .contains("Successfully built image"); - removeImage("build-image-classifier-source-with-repackage", "0.0.1.BUILD-SNAPSHOT"); + ImageReference imageReference = ImageReference + .of(ImageName.of("build-image-classifier-source-with-repackage"), "0.0.1.BUILD-SNAPSHOT"); + try (GenericContainer container = new GenericContainer<>(imageReference.toString())) { + container.waitingFor(Wait.forLogMessage("Launched\\n", 1)).start(); + } + finally { + removeImage(imageReference); + } }); } @@ -164,9 +202,15 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests { assertThat(original).doesNotExist(); assertThat(buildLog(project)).contains("Building image") .contains("docker.io/library/build-image-war-packaging:0.0.1.BUILD-SNAPSHOT") - .contains("---> Test Info buildpack building").contains("---> Test Info buildpack done") .contains("Successfully built image"); - removeImage("build-image-war-packaging", "0.0.1.BUILD-SNAPSHOT"); + ImageReference imageReference = ImageReference.of(ImageName.of("build-image-war-packaging"), + "0.0.1.BUILD-SNAPSHOT"); + try (GenericContainer container = new GenericContainer<>(imageReference.toString())) { + container.waitingFor(Wait.forLogMessage("Launched\\n", 1)).start(); + } + finally { + removeImage(imageReference); + } }); } @@ -183,9 +227,15 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests { assertThat(original).doesNotExist(); assertThat(buildLog(project)).contains("Building image") .contains("example.com/test/build-image:0.0.1.BUILD-SNAPSHOT") - .contains("---> Test Info buildpack building").contains("---> Test Info buildpack done") .contains("Successfully built image"); - removeImage("example.com/test/build-image", "0.0.1.BUILD-SNAPSHOT"); + ImageReference imageReference = ImageReference + .of("example.com/test/build-image:0.0.1.BUILD-SNAPSHOT"); + try (GenericContainer container = new GenericContainer<>(imageReference.toString())) { + container.waitingFor(Wait.forLogMessage("Launched\\n", 1)).start(); + } + finally { + removeImage(imageReference); + } }); } @@ -194,14 +244,18 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests { mavenBuild.project("build-image").goals("package") .systemProperty("spring-boot.build-image.pullPolicy", "IF_NOT_PRESENT") .systemProperty("spring-boot.build-image.imageName", "example.com/test/cmd-property-name:v1") - .systemProperty("spring-boot.build-image.builder", "springci/spring-boot-cnb-builder:0.0.1") - .systemProperty("spring-boot.build-image.runImage", "paketobuildpacks/run:tiny-cnb") + .systemProperty("spring-boot.build-image.builder", "paketobuildpacks/builder:full") + .systemProperty("spring-boot.build-image.runImage", "paketobuildpacks/run:full-cnb") .execute((project) -> { assertThat(buildLog(project)).contains("Building image") - .contains("example.com/test/cmd-property-name:v1") - .contains("---> Test Info buildpack building").contains("---> Test Info buildpack done") - .contains("Successfully built image"); - removeImage("example.com/test/cmd-property-name", "v1"); + .contains("example.com/test/cmd-property-name:v1").contains("Successfully built image"); + ImageReference imageReference = ImageReference.of("example.com/test/cmd-property-name:v1"); + try (GenericContainer container = new GenericContainer<>(imageReference.toString())) { + container.waitingFor(Wait.forLogMessage("Launched\\n", 1)).start(); + } + finally { + removeImage(imageReference); + } }); } @@ -211,21 +265,34 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests { .systemProperty("spring-boot.build-image.pullPolicy", "IF_NOT_PRESENT").execute((project) -> { assertThat(buildLog(project)).contains("Building image") .contains("docker.io/library/build-image-v2-builder:0.0.1.BUILD-SNAPSHOT") - .contains("---> Test Info buildpack building").contains("---> Test Info buildpack done") .contains("Successfully built image"); - removeImage("docker.io/library/build-image-v2-builder", "0.0.1.BUILD-SNAPSHOT"); + ImageReference imageReference = ImageReference + .of("docker.io/library/build-image-v2-builder:0.0.1.BUILD-SNAPSHOT"); + try (GenericContainer container = new GenericContainer<>(imageReference.toString())) { + container.waitingFor(Wait.forLogMessage("Launched\\n", 1)).start(); + } + finally { + removeImage(imageReference); + } }); } @TestTemplate void whenBuildImageIsInvokedWithEmptyEnvEntry(MavenBuild mavenBuild) { - mavenBuild.project("build-image-empty-env-entry").goals("package").prepare(this::writeLongNameResource) - .systemProperty("spring-boot.build-image.pullPolicy", "IF_NOT_PRESENT").execute((project) -> { + mavenBuild.project("build-image-empty-env-entry").goals("package") + .systemProperty("spring-boot.build-image.pullPolicy", "IF_NOT_PRESENT") + .prepare(this::writeLongNameResource).execute((project) -> { assertThat(buildLog(project)).contains("Building image") .contains("docker.io/library/build-image-empty-env-entry:0.0.1.BUILD-SNAPSHOT") - .contains("---> Test Info buildpack building").contains("---> Test Info buildpack done") .contains("Successfully built image"); - removeImage("build-image-empty-env-entry", "0.0.1.BUILD-SNAPSHOT"); + ImageReference imageReference = ImageReference.of(ImageName.of("build-image-empty-env-entry"), + "0.0.1.BUILD-SNAPSHOT"); + try (GenericContainer container = new GenericContainer<>(imageReference.toString())) { + container.waitingFor(Wait.forLogMessage("Launched\\n", 1)).start(); + } + finally { + removeImage(imageReference); + } }); } @@ -235,24 +302,25 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests { .systemProperty("spring-boot.build-image.pullPolicy", "IF_NOT_PRESENT").execute((project) -> { assertThat(buildLog(project)).contains("Building image") .contains("docker.io/library/build-image-custom-buildpacks:0.0.1.BUILD-SNAPSHOT") - .contains("---> Test Info buildpack building").contains("---> Test Info buildpack done") .contains("Successfully built image"); - removeImage("docker.io/library/build-image-custom-buildpacks", "0.0.1.BUILD-SNAPSHOT"); + ImageReference imageReference = ImageReference + .of("docker.io/library/build-image-custom-buildpacks:0.0.1.BUILD-SNAPSHOT"); + try (GenericContainer container = new GenericContainer<>(imageReference.toString())) { + container.waitingFor(Wait.forLogMessage("Launched\\n", 1)).start(); + } + finally { + removeImage(imageReference); + } }); } @TestTemplate - void whenBuildImageIsInvokedWithBinding(MavenBuild mavenBuild) { + void failsWithBindingContainingInvalidCertificate(MavenBuild mavenBuild) { mavenBuild.project("build-image-bindings").goals("package") - .systemProperty("spring-boot.build-image.pullPolicy", "IF_NOT_PRESENT").execute((project) -> { - assertThat(buildLog(project)).contains("Building image") - .contains("docker.io/library/build-image-bindings:0.0.1.BUILD-SNAPSHOT") - .contains("---> Test Info buildpack building") - .contains("binding: ca-certificates/type=ca-certificates") - .contains("binding: ca-certificates/test1.crt=---certificate one---") - .contains("binding: ca-certificates/test2.crt=---certificate two---"); - removeImage("docker.io/library/build-image-bindings", "0.0.1.BUILD-SNAPSHOT"); - }); + .systemProperty("spring-boot.build-image.pullPolicy", "IF_NOT_PRESENT") + .executeAndFail((project) -> assertThat(buildLog(project)).contains("Building image") + .contains("failed to decode certificate") + .contains("/platform/bindings/ca-certificates/test.crt")); } @TestTemplate @@ -266,7 +334,6 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests { mavenBuild.project("build-image-builder-error").goals("package") .systemProperty("spring-boot.build-image.pullPolicy", "IF_NOT_PRESENT") .executeAndFail((project) -> assertThat(buildLog(project)).contains("Building image") - .contains("---> Test Info buildpack building").contains("Forced builder failure") .containsPattern("Builder lifecycle '.*' failed with status code")); } @@ -298,8 +365,7 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests { } } - private void removeImage(String name, String version) { - ImageReference imageReference = ImageReference.of(ImageName.of(name), version); + private void removeImage(ImageReference imageReference) { try { new DockerApi().image().remove(imageReference, false); } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-bad-buildpack/pom.xml b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-bad-buildpack/pom.xml index 475d319ec3..209d6d6e3a 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-bad-buildpack/pom.xml +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-bad-buildpack/pom.xml @@ -23,7 +23,6 @@ - springci/spring-boot-cnb-builder:0.0.1 urn:cnb:builder:example/does-not-exist:0.0.1 diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-bindings/bindings/ca-certificates/test.crt b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-bindings/bindings/ca-certificates/test.crt new file mode 100644 index 0000000000..e403bc8f31 --- /dev/null +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-bindings/bindings/ca-certificates/test.crt @@ -0,0 +1 @@ +not a valid certificate \ No newline at end of file diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-bindings/bindings/ca-certificates/test1.crt b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-bindings/bindings/ca-certificates/test1.crt deleted file mode 100644 index 55229e911f..0000000000 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-bindings/bindings/ca-certificates/test1.crt +++ /dev/null @@ -1 +0,0 @@ ----certificate one--- \ No newline at end of file diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-bindings/bindings/ca-certificates/test2.crt b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-bindings/bindings/ca-certificates/test2.crt deleted file mode 100644 index 4e9b8c36a9..0000000000 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-bindings/bindings/ca-certificates/test2.crt +++ /dev/null @@ -1 +0,0 @@ ----certificate two--- \ No newline at end of file diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-bindings/pom.xml b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-bindings/pom.xml index 033397711b..df717aa199 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-bindings/pom.xml +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-bindings/pom.xml @@ -23,7 +23,6 @@ - springci/spring-boot-cnb-builder:0.0.1 ${basedir}/bindings/ca-certificates:/platform/bindings/ca-certificates diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-builder-error/pom.xml b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-builder-error/pom.xml index 4866c1cd2e..5b7491e88e 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-builder-error/pom.xml +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-builder-error/pom.xml @@ -23,9 +23,8 @@ - springci/spring-boot-cnb-builder:0.0.1 - true + 13.9.9 diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-classifier-source-with-repackage/pom.xml b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-classifier-source-with-repackage/pom.xml index 15fd86bd7c..7734c543d6 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-classifier-source-with-repackage/pom.xml +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-classifier-source-with-repackage/pom.xml @@ -43,11 +43,6 @@ build-image - - - springci/spring-boot-cnb-builder:0.0.1 - - diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-classifier-source/pom.xml b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-classifier-source/pom.xml index e5d62a6c48..30b605a5bc 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-classifier-source/pom.xml +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-classifier-source/pom.xml @@ -37,11 +37,6 @@ build-image - - - springci/spring-boot-cnb-builder:0.0.1 - - diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-classifier-with-repackage/pom.xml b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-classifier-with-repackage/pom.xml index 997a7b24c3..d2f34ba4c6 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-classifier-with-repackage/pom.xml +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-classifier-with-repackage/pom.xml @@ -27,11 +27,6 @@ build-image - - - springci/spring-boot-cnb-builder:0.0.1 - - diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-classifier/pom.xml b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-classifier/pom.xml index 118ce18b48..ba64b1df5f 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-classifier/pom.xml +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-classifier/pom.xml @@ -21,11 +21,6 @@ build-image - - - springci/spring-boot-cnb-builder:0.0.1 - - diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-cmd-line/pom.xml b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-cmd-line/pom.xml deleted file mode 100644 index 0451a8426e..0000000000 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-cmd-line/pom.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - 4.0.0 - org.springframework.boot.maven.it - build-image - 0.0.1.BUILD-SNAPSHOT - - UTF-8 - @java.version@ - @java.version@ - - - - - @project.groupId@ - @project.artifactId@ - @project.version@ - - - - build-image - - - - - - - diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-cmd-line/src/main/java/org/test/SampleApplication.java b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-cmd-line/src/main/java/org/test/SampleApplication.java deleted file mode 100644 index 5053809ef1..0000000000 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-cmd-line/src/main/java/org/test/SampleApplication.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2012-2021 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. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.test; - -public class SampleApplication { - - public static void main(String[] args) throws Exception { - System.out.println("Launched"); - synchronized(args) { - args.wait(); // Prevent exit" - } - } - -} diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-custom-builder/pom.xml b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-custom-builder/pom.xml index db0c55aa6a..457cb7c933 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-custom-builder/pom.xml +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-custom-builder/pom.xml @@ -23,8 +23,8 @@ - springci/spring-boot-cnb-builder:0.0.1 - paketobuildpacks/run:tiny-cnb + paketobuildpacks/builder:full + paketobuildpacks/run:full-cnb diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-custom-buildpacks/pom.xml b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-custom-buildpacks/pom.xml index bdb1530f4b..4d7308ea20 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-custom-buildpacks/pom.xml +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-custom-buildpacks/pom.xml @@ -23,9 +23,10 @@ - springci/spring-boot-cnb-builder:0.0.1 - spring-boot/test-info + gcr.io/paketo-buildpacks/bellsoft-liberica:latest + gcr.io/paketo-buildpacks/executable-jar:latest + gcr.io/paketo-buildpacks/spring-boot:latest diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-custom-name/pom.xml b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-custom-name/pom.xml index 0ad3c6f567..57ec39dd84 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-custom-name/pom.xml +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-custom-name/pom.xml @@ -23,7 +23,6 @@ - springci/spring-boot-cnb-builder:0.0.1 example.com/test/build-image:${project.version} diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-empty-env-entry/pom.xml b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-empty-env-entry/pom.xml index e0b7f897f6..e453fd95d6 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-empty-env-entry/pom.xml +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-empty-env-entry/pom.xml @@ -23,7 +23,6 @@ - springci/spring-boot-cnb-builder:0.0.1 diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-final-name/pom.xml b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-final-name/pom.xml index 11b81efa0a..599371978a 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-final-name/pom.xml +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-final-name/pom.xml @@ -24,9 +24,6 @@ final-name - - springci/spring-boot-cnb-builder:0.0.1 - diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-war-packaging/pom.xml b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-war-packaging/pom.xml index 9147d9bd8e..5b7c0de349 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-war-packaging/pom.xml +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-war-packaging/pom.xml @@ -22,11 +22,6 @@ build-image - - - springci/spring-boot-cnb-builder:0.0.1 - - diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-with-repackage/pom.xml b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-with-repackage/pom.xml index d9cd19b233..c9a9bd0322 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-with-repackage/pom.xml +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image-with-repackage/pom.xml @@ -27,11 +27,6 @@ build-image - - - springci/spring-boot-cnb-builder:0.0.1 - - diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image/pom.xml b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image/pom.xml index ab9c918a02..0451a8426e 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image/pom.xml +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/build-image/pom.xml @@ -21,11 +21,6 @@ build-image - - - springci/spring-boot-cnb-builder:0.0.1 - - diff --git a/src/spring-boot-builder/README.adoc b/src/spring-boot-builder/README.adoc deleted file mode 100644 index dfaf0efb07..0000000000 --- a/src/spring-boot-builder/README.adoc +++ /dev/null @@ -1,15 +0,0 @@ -= Spring Boot Test Builder - -This directory contains a Cloud Native Buildpacks https://buildpacks.io/docs/concepts/components/builder/[builder] and https://buildpacks.io/docs/concepts/components/buildpack/[buildpack] that is used by integration tests to verify the behavior of the Spring Boot build plugins. - -== Creating the builder - -* Install the https://buildpacks.io/docs/install-pack/[pack CLI] -* Authenticate to Docker Hub via `docker login` using the `springci` repository credentials -* Use `pack` to create the builder image and publish it to Docker Hub: - -[source,bash] ----- -$ cd builder -$ pack builder create springci/spring-boot-cnb-builder:0.0.1 --config builder.toml --publish ----- diff --git a/src/spring-boot-builder/builder/builder.toml b/src/spring-boot-builder/builder/builder.toml deleted file mode 100644 index 5ee00bb862..0000000000 --- a/src/spring-boot-builder/builder/builder.toml +++ /dev/null @@ -1,18 +0,0 @@ -# Buildpacks to include in builder -[[buildpacks]] -id = "spring-boot/test-info" -version = "0.0.1" -uri = "../buildpacks/test-info" - -# Order used for detection -[[order]] -[[order.group]] -id = "spring-boot/test-info" -version = "0.0.1" - -# Stack that will be used by the builder -[stack] -id = "io.paketo.stacks.tiny" -build-image = "index.docker.io/paketobuildpacks/build:1.2.2-tiny-cnb" -run-image = "index.docker.io/paketobuildpacks/run:tiny-cnb" -run-image-mirrors = ["gcr.io/paketo-buildpacks/run:tiny-cnb"] diff --git a/src/spring-boot-builder/buildpacks/test-info/bin/build b/src/spring-boot-builder/buildpacks/test-info/bin/build deleted file mode 100755 index 7698b0f6ba..0000000000 --- a/src/spring-boot-builder/buildpacks/test-info/bin/build +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail - -echo "---> Test Info buildpack building" - -# INPUT ARGUMENTS -platform_dir=$2 -env_dir=${platform_dir}/env -bindings_dir=${platform_dir}/bindings - -if [[ -f ${env_dir}/FORCE_FAILURE ]]; then - echo "Forced builder failure" - exit 1 -fi - -if compgen -G "${env_dir}/*" > /dev/null; then - for var in ${env_dir}/*; do - echo "env: $(basename ${var})=$(<${var})" - done -fi - -if compgen -G "${bindings_dir}/*" > /dev/null; then - for binding in ${bindings_dir}/*; do - for f in ${binding}/*; do - echo "binding: $(basename ${binding})/$(basename ${f})=$(<${f})" - done - done -fi - -echo "---> Test Info buildpack done" diff --git a/src/spring-boot-builder/buildpacks/test-info/bin/detect b/src/spring-boot-builder/buildpacks/test-info/bin/detect deleted file mode 100755 index f7e1c76ebc..0000000000 --- a/src/spring-boot-builder/buildpacks/test-info/bin/detect +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail - -# 1. CHECK IF APPLICABLE -if [[ ! -f META-INF/MANIFEST.MF ]]; then - exit 100 -fi - -# 2. GET ARGS -plan_path=$2 - -# 3. DECLARE DEPENDENCIES (OPTIONAL) -cat >> "${plan_path}" <