@ -47,27 +47,31 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests {
@@ -47,27 +47,31 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests {
@TestTemplate
void whenBuildImageIsInvokedWithoutRepackageTheArchiveIsRepackagedOnTheFly ( MavenBuild mavenBuild ) {
mavenBuild . project ( "build-image" ) . goals ( "package" ) . prepare ( this : : writeLongNameResource ) . execute ( ( project ) - > {
File jar = new File ( project , "target/build-image-0.0.1.BUILD-SNAPSHOT.jar" ) ;
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 ( "paketobuildpacks/builder" )
. 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" ) ;
try ( GenericContainer < ? > container = new GenericContainer < > ( imageReference . toString ( ) ) ) {
container . waitingFor ( Wait . forLogMessage ( "Launched\\n" , 1 ) ) . start ( ) ;
}
finally {
removeImage ( imageReference ) ;
}
} ) ;
mavenBuild . project ( "build-image" ) . goals ( "package" )
. systemProperty ( "spring-boot.build-image.pullPolicy" , "IF_NOT_PRESENT" )
. prepare ( this : : writeLongNameResource ) . execute ( ( project ) - > {
File jar = new File ( project , "target/build-image-0.0.1.BUILD-SNAPSHOT.jar" ) ;
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 ( "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" ) ;
try ( GenericContainer < ? > container = new GenericContainer < > ( imageReference . toString ( ) ) ) {
container . waitingFor ( Wait . forLogMessage ( "Launched\\n" , 1 ) ) . start ( ) ;
}
finally {
removeImage ( imageReference ) ;
}
} ) ;
}
@TestTemplate
void whenBuildImageIsInvokedWithCustomImageName ( MavenBuild mavenBuild ) {
mavenBuild . project ( "build-image-custom-name" ) . goals ( "package" )
. systemProperty ( "spring-boot.build-image.pullPolicy" , "IF_NOT_PRESENT" )
. systemProperty ( "spring-boot.build-image.imageName" , "example.com/test/property-ignored:pom-preferred" )
. execute ( ( project ) - > {
File jar = new File ( project , "target/build-image-custom-name-0.0.1.BUILD-SNAPSHOT.jar" ) ;
@ -92,13 +96,13 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests {
@@ -92,13 +96,13 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests {
@TestTemplate
void whenBuildImageIsInvokedWithCommandLineParameters ( MavenBuild mavenBuild ) {
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" , "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 ( "paketobuildpacks/builder:full" )
. contains ( "paketobuildpacks/run:full" ) . contains ( "Successfully built image" ) ;
. 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 ( ) ;
@ -111,27 +115,28 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests {
@@ -111,27 +115,28 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests {
@TestTemplate
void whenBuildImageIsInvokedWithCustomBuilderImageAndRunImage ( MavenBuild mavenBuild ) {
mavenBuild . project ( "build-image-custom-builder" ) . goals ( "package" ) . execute ( ( project ) - > {
assertThat ( buildLog ( project ) ) . contains ( "Building image" ) . contains ( "paketobuildpacks/builder:full" )
. contains ( "paketobuildpacks/run:full " )
. 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-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 ) ;
}
} ) ;
mavenBuild . project ( "build-image-custom-builder" ) . 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-v2-builder:0.0.1.BUILD-SNAPSHOT" )
. contains ( "Successfully built image" ) ;
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 )
. execute ( ( project ) - > {
assertThat ( buildLog ( project ) ) . contains ( "Building image" ) . contains ( "paketobuildpacks/builder" )
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 ( "Successfully built image" ) ;
ImageReference imageReference = ImageReference . of ( ImageName . of ( "build-image-empty-env-entry" ) ,
@ -154,6 +159,7 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests {
@@ -154,6 +159,7 @@ public class BuildImageTests extends AbstractArchiveIntegrationTests {
@TestTemplate
void failsWhenBuilderFails ( MavenBuild mavenBuild ) {
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" )
. containsPattern ( "Builder lifecycle '.*' failed with status code" ) ) ;
}