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 bbc2fd16a4..3dced2f6ce 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
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2021 the original author or authors.
+ * Copyright 2012-2020 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.
@@ -28,6 +28,8 @@ import java.util.Random;
import org.gradle.testkit.runner.BuildResult;
import org.gradle.testkit.runner.TaskOutcome;
import org.junit.jupiter.api.TestTemplate;
+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;
@@ -58,10 +60,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
@@ -71,10 +76,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("env: BP_JVM_VERSION=8.*");
- 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
@@ -84,9 +92,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
@@ -94,13 +106,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
@@ -108,13 +124,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
@@ -132,7 +159,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");
}
@@ -172,12 +198,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);
+ }
}
private void writeMainClass() {
@@ -219,9 +249,4 @@ class BootBuildImageIntegrationTests {
}
}
- 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-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-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.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 0336af0e8b..56323d1be1 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);
+ }
});
}
@@ -165,9 +203,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);
+ }
});
}
@@ -176,14 +220,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);
+ }
});
}
@@ -193,21 +241,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);
+ }
});
}
@@ -222,7 +283,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"));
}
@@ -252,8 +312,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-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-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-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}" <