Support CNB builder platform API 0.3

This commit adds support for Cloud Native Buildpacks builder platform
API 0.3, which is the latest platform API available currently. Support
for platform API 0.1 has been removed, adopting the policy of the pack
CLI to support the current platform API version and one version prior.

Fixes gh-20757
This commit is contained in:
Scott Frederick
2020-04-01 17:18:46 -05:00
parent bb9e37e119
commit a01c8452cb
22 changed files with 289 additions and 758 deletions

View File

@@ -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:bionic-platform-api-0.1")
.systemProperty("spring-boot.build-image.builder", "cloudfoundry/cnb:bionic-platform-api-0.2")
.execute((project) -> {
assertThat(buildLog(project)).contains("Building image")
.contains("example.com/test/cmd-property-name:v1")
.contains("cloudfoundry/cnb:bionic-platform-api-0.1").contains("Successfully built image");
.contains("cloudfoundry/cnb:bionic-platform-api-0.2").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();
@@ -109,14 +109,14 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests {
}
@TestTemplate
void whenBuildImageIsInvokedWithV1BuilderImage(MavenBuild mavenBuild) {
mavenBuild.project("build-image-v1-builder").goals("package").execute((project) -> {
void whenBuildImageIsInvokedWithV2BuilderImage(MavenBuild mavenBuild) {
mavenBuild.project("build-image-v2-builder").goals("package").execute((project) -> {
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("cloudfoundry/cnb:bionic-platform-api-0.2")
.contains("docker.io/library/build-image-v2-builder:0.0.1.BUILD-SNAPSHOT")
.contains("Successfully built image");
ImageReference imageReference = ImageReference
.of("docker.io/library/build-image-v1-builder:0.0.1.BUILD-SNAPSHOT");
.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();
}

View File

@@ -3,7 +3,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework.boot.maven.it</groupId>
<artifactId>build-image-v1-builder</artifactId>
<artifactId>build-image-v2-builder</artifactId>
<version>0.0.1.BUILD-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -23,7 +23,7 @@
</goals>
<configuration>
<image>
<builder>cloudfoundry/cnb:bionic-platform-api-0.1</builder>
<builder>cloudfoundry/cnb:bionic-platform-api-0.2</builder>
</image>
</configuration>
</execution>