Use platform API builder image tags
CNB builder images are now being tagged in a manner that indicates the version of the platform API implemented. This allows Spring Boot to default to a builder tag that guarantees API compatibility while allowing for updates to bundled buildpacks. Fixes gh-20171
This commit is contained in:
@@ -73,7 +73,7 @@ The following table summarizes the available parameters and their default values
|
||||
| `builder`
|
||||
| Name of the Builder image to use.
|
||||
| `spring-boot.build-image.builder`
|
||||
| `cloudfoundry/cnb:0.0.53-bionic`
|
||||
| `cloudfoundry/cnb:bionic-platform-api-0.2`
|
||||
|
||||
| `name`
|
||||
| {spring-boot-api}/buildpack/platform/docker/type/ImageReference.html#of-java.lang.String-[Image name] for the generated image.
|
||||
|
||||
@@ -52,7 +52,7 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests {
|
||||
assertThat(jar).isFile();
|
||||
File original = new File(project, "target/build-image-0.0.1.BUILD-SNAPSHOT.jar.original");
|
||||
assertThat(original).doesNotExist();
|
||||
assertThat(buildLog(project)).contains("Building image").contains("cloudfoundry/cnb:0.0.53-bionic")
|
||||
assertThat(buildLog(project)).contains("Building image").contains("cloudfoundry/cnb:bionic-platform-api")
|
||||
.contains("docker.io/library/build-image:0.0.1.BUILD-SNAPSHOT")
|
||||
.contains("Successfully built image");
|
||||
ImageReference imageReference = ImageReference.of(ImageName.of("build-image"), "0.0.1.BUILD-SNAPSHOT");
|
||||
@@ -93,11 +93,11 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests {
|
||||
void whenBuildImageIsInvokedWithCommandLineParameters(MavenBuild mavenBuild) {
|
||||
mavenBuild.project("build-image").goals("package")
|
||||
.systemProperty("spring-boot.build-image.imageName", "example.com/test/cmd-property-name:v1")
|
||||
.systemProperty("spring-boot.build-image.builder", "cloudfoundry/cnb:0.0.43-bionic")
|
||||
.systemProperty("spring-boot.build-image.builder", "cloudfoundry/cnb:bionic-platform-api-0.1")
|
||||
.execute((project) -> {
|
||||
assertThat(buildLog(project)).contains("Building image")
|
||||
.contains("example.com/test/cmd-property-name:v1")
|
||||
.contains("cloudfoundry/cnb:0.0.43-bionic").contains("Successfully built image");
|
||||
.contains("cloudfoundry/cnb:bionic-platform-api-0.1").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();
|
||||
@@ -111,7 +111,8 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests {
|
||||
@TestTemplate
|
||||
void whenBuildImageIsInvokedWithV1BuilderImage(MavenBuild mavenBuild) {
|
||||
mavenBuild.project("build-image-v1-builder").goals("package").execute((project) -> {
|
||||
assertThat(buildLog(project)).contains("Building image").contains("cloudfoundry/cnb:0.0.43-bionic")
|
||||
assertThat(buildLog(project)).contains("Building image")
|
||||
.contains("cloudfoundry/cnb:bionic-platform-api-0.1")
|
||||
.contains("docker.io/library/build-image-v1-builder:0.0.1.BUILD-SNAPSHOT")
|
||||
.contains("Successfully built image");
|
||||
ImageReference imageReference = ImageReference
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
</goals>
|
||||
<configuration>
|
||||
<image>
|
||||
<builder>cloudfoundry/cnb:0.0.43-bionic</builder>
|
||||
<builder>cloudfoundry/cnb:bionic-platform-api-0.1</builder>
|
||||
</image>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
||||
@@ -57,7 +57,7 @@ class ImageTests {
|
||||
void getBuildRequestWhenNoCustomizationsUsesDefaults() {
|
||||
BuildRequest request = new Image().getBuildRequest(createArtifact(), mockAplicationContent());
|
||||
assertThat(request.getName().toString()).isEqualTo("docker.io/library/my-app:0.0.1-SNAPSHOT");
|
||||
assertThat(request.getBuilder().toString()).isEqualTo("docker.io/cloudfoundry/cnb:0.0.53-bionic");
|
||||
assertThat(request.getBuilder().toString()).contains("docker.io/cloudfoundry/cnb:bionic-platform-api");
|
||||
assertThat(request.getEnv()).isEmpty();
|
||||
assertThat(request.isCleanCache()).isFalse();
|
||||
assertThat(request.isVerboseLogging()).isFalse();
|
||||
|
||||
Reference in New Issue
Block a user