mirror of
https://github.com/spring-projects/spring-boot.git
synced 2026-10-06 01:09:02 +00:00
Use String instead of enum for Gradle task Property
See gh-32769
This commit is contained in:
+2
-2
@@ -175,7 +175,7 @@ public abstract class BootBuildImage extends DefaultTask {
|
||||
@Input
|
||||
@Optional
|
||||
@Option(option = "pullPolicy", description = "The image pull policy")
|
||||
public abstract Property<PullPolicy> getPullPolicy();
|
||||
public abstract Property<String> getPullPolicy();
|
||||
|
||||
/**
|
||||
* Whether the built image should be pushed to a registry.
|
||||
@@ -342,7 +342,7 @@ public abstract class BootBuildImage extends DefaultTask {
|
||||
}
|
||||
|
||||
private BuildRequest customizePullPolicy(BuildRequest request) {
|
||||
PullPolicy pullPolicy = getPullPolicy().getOrNull();
|
||||
PullPolicy pullPolicy = getPullPolicy().map(PullPolicy::valueOf).getOrNull();
|
||||
if (pullPolicy != null) {
|
||||
request = request.withPullPolicy(pullPolicy);
|
||||
}
|
||||
|
||||
+18
-19
@@ -68,7 +68,7 @@ class BootBuildImageIntegrationTests {
|
||||
void buildsImageWithDefaultBuilder() throws IOException {
|
||||
writeMainClass();
|
||||
writeLongNameResource();
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage");
|
||||
String projectName = this.gradleBuild.getProjectDir().getName();
|
||||
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
||||
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
|
||||
@@ -83,8 +83,7 @@ class BootBuildImageIntegrationTests {
|
||||
void buildsImageWithWarPackaging() throws IOException {
|
||||
writeMainClass();
|
||||
writeLongNameResource();
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage", "-PapplyWarPlugin",
|
||||
"--pullPolicy=IF_NOT_PRESENT");
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage", "-PapplyWarPlugin");
|
||||
String projectName = this.gradleBuild.getProjectDir().getName();
|
||||
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
||||
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
|
||||
@@ -101,7 +100,7 @@ class BootBuildImageIntegrationTests {
|
||||
void buildsImageWithWarPackagingAndJarConfiguration() throws IOException {
|
||||
writeMainClass();
|
||||
writeLongNameResource();
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage");
|
||||
String projectName = this.gradleBuild.getProjectDir().getName();
|
||||
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
||||
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
|
||||
@@ -117,7 +116,7 @@ class BootBuildImageIntegrationTests {
|
||||
void buildsImageWithCustomName() throws IOException {
|
||||
writeMainClass();
|
||||
writeLongNameResource();
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage");
|
||||
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
||||
assertThat(result.getOutput()).contains("example/test-image-name");
|
||||
assertThat(result.getOutput()).contains("---> Test Info buildpack building");
|
||||
@@ -129,7 +128,7 @@ class BootBuildImageIntegrationTests {
|
||||
void buildsImageWithCustomBuilderAndRunImage() throws IOException {
|
||||
writeMainClass();
|
||||
writeLongNameResource();
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage");
|
||||
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
||||
assertThat(result.getOutput()).contains("example/test-image-custom");
|
||||
assertThat(result.getOutput()).contains("---> Test Info buildpack building");
|
||||
@@ -157,7 +156,7 @@ class BootBuildImageIntegrationTests {
|
||||
writeMainClass();
|
||||
writeLongNameResource();
|
||||
String projectName = this.gradleBuild.getProjectDir().getName();
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=ALWAYS");
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage");
|
||||
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
||||
assertThat(result.getOutput()).contains("Pulled builder image").contains("Pulled run image");
|
||||
result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
|
||||
@@ -170,7 +169,7 @@ class BootBuildImageIntegrationTests {
|
||||
void buildsImageWithBuildpackFromBuilder() throws IOException {
|
||||
writeMainClass();
|
||||
writeLongNameResource();
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage");
|
||||
String projectName = this.gradleBuild.getProjectDir().getName();
|
||||
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
||||
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
|
||||
@@ -185,7 +184,7 @@ class BootBuildImageIntegrationTests {
|
||||
writeMainClass();
|
||||
writeLongNameResource();
|
||||
writeBuildpackContent();
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage");
|
||||
String projectName = this.gradleBuild.getProjectDir().getName();
|
||||
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
||||
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
|
||||
@@ -200,7 +199,7 @@ class BootBuildImageIntegrationTests {
|
||||
writeLongNameResource();
|
||||
writeBuildpackContent();
|
||||
tarGzipBuildpackContent();
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage");
|
||||
String projectName = this.gradleBuild.getProjectDir().getName();
|
||||
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
||||
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
|
||||
@@ -212,7 +211,7 @@ class BootBuildImageIntegrationTests {
|
||||
void buildsImageWithBuildpacksFromImages() throws IOException {
|
||||
writeMainClass();
|
||||
writeLongNameResource();
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage");
|
||||
String projectName = this.gradleBuild.getProjectDir().getName();
|
||||
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
||||
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
|
||||
@@ -226,7 +225,7 @@ class BootBuildImageIntegrationTests {
|
||||
writeMainClass();
|
||||
writeLongNameResource();
|
||||
writeCertificateBindingFiles();
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage");
|
||||
String projectName = this.gradleBuild.getProjectDir().getName();
|
||||
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
||||
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
|
||||
@@ -242,7 +241,7 @@ class BootBuildImageIntegrationTests {
|
||||
void buildsImageWithTag() throws IOException {
|
||||
writeMainClass();
|
||||
writeLongNameResource();
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage");
|
||||
String projectName = this.gradleBuild.getProjectDir().getName();
|
||||
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
||||
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
|
||||
@@ -256,7 +255,7 @@ class BootBuildImageIntegrationTests {
|
||||
void buildsImageWithLaunchScript() throws IOException {
|
||||
writeMainClass();
|
||||
writeLongNameResource();
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage");
|
||||
String projectName = this.gradleBuild.getProjectDir().getName();
|
||||
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
||||
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
|
||||
@@ -269,7 +268,7 @@ class BootBuildImageIntegrationTests {
|
||||
void buildsImageWithNetworkModeNone() throws IOException {
|
||||
writeMainClass();
|
||||
writeLongNameResource();
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage");
|
||||
String projectName = this.gradleBuild.getProjectDir().getName();
|
||||
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
||||
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
|
||||
@@ -283,7 +282,7 @@ class BootBuildImageIntegrationTests {
|
||||
void buildsImageWithVolumeCaches() throws IOException {
|
||||
writeMainClass();
|
||||
writeLongNameResource();
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
|
||||
BuildResult result = this.gradleBuild.build("bootBuildImage");
|
||||
String projectName = this.gradleBuild.getProjectDir().getName();
|
||||
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
|
||||
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
|
||||
@@ -297,7 +296,7 @@ class BootBuildImageIntegrationTests {
|
||||
void failsWithBuilderError() throws IOException {
|
||||
writeMainClass();
|
||||
writeLongNameResource();
|
||||
BuildResult result = this.gradleBuild.buildAndFail("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
|
||||
BuildResult result = this.gradleBuild.buildAndFail("bootBuildImage");
|
||||
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");
|
||||
@@ -317,7 +316,7 @@ class BootBuildImageIntegrationTests {
|
||||
void failsWithBuildpackNotInBuilder() throws IOException {
|
||||
writeMainClass();
|
||||
writeLongNameResource();
|
||||
BuildResult result = this.gradleBuild.buildAndFail("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
|
||||
BuildResult result = this.gradleBuild.buildAndFail("bootBuildImage");
|
||||
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.FAILED);
|
||||
assertThat(result.getOutput()).contains("'urn:cnb:builder:example/does-not-exist:0.0.1' not found in builder");
|
||||
}
|
||||
@@ -326,7 +325,7 @@ class BootBuildImageIntegrationTests {
|
||||
void failsWithInvalidTag() throws IOException {
|
||||
writeMainClass();
|
||||
writeLongNameResource();
|
||||
BuildResult result = this.gradleBuild.buildAndFail("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
|
||||
BuildResult result = this.gradleBuild.buildAndFail("bootBuildImage");
|
||||
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.FAILED);
|
||||
assertThat(result.getOutput()).containsPattern("Unable to parse image reference")
|
||||
.containsPattern("example/Invalid-Tag-Name");
|
||||
|
||||
+1
-1
@@ -216,7 +216,7 @@ class BootBuildImageTests {
|
||||
|
||||
@Test
|
||||
void whenPullPolicyIsConfiguredThenRequestHasPullPolicy() {
|
||||
this.buildImage.getPullPolicy().set(PullPolicy.NEVER);
|
||||
this.buildImage.getPullPolicy().set(PullPolicy.NEVER.toString());
|
||||
assertThat(this.buildImage.createRequest().getPullPolicy()).isEqualTo(PullPolicy.NEVER);
|
||||
}
|
||||
|
||||
|
||||
+1
@@ -8,5 +8,6 @@ targetCompatibility = '1.8'
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
|
||||
pullPolicy = "IF_NOT_PRESENT"
|
||||
bindings = [ "${projectDir}/bindings/ca-certificates:/platform/bindings/certificates" ]
|
||||
}
|
||||
|
||||
+1
@@ -8,5 +8,6 @@ targetCompatibility = '1.8'
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
|
||||
pullPolicy = "IF_NOT_PRESENT"
|
||||
buildpacks = [ "spring-boot/test-info" ]
|
||||
}
|
||||
|
||||
+1
@@ -8,5 +8,6 @@ targetCompatibility = '1.8'
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
|
||||
pullPolicy = "IF_NOT_PRESENT"
|
||||
buildpacks = [ "file://${projectDir}/buildpack/hello-world" ]
|
||||
}
|
||||
|
||||
+1
@@ -8,5 +8,6 @@ targetCompatibility = '1.8'
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
|
||||
pullPolicy = "IF_NOT_PRESENT"
|
||||
buildpacks = [ "file://${projectDir}/hello-world.tgz" ]
|
||||
}
|
||||
|
||||
+1
@@ -8,5 +8,6 @@ targetCompatibility = '1.8'
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
|
||||
pullPolicy = "IF_NOT_PRESENT"
|
||||
buildpacks = ["projects.registry.vmware.com/springboot/test-info:latest"]
|
||||
}
|
||||
|
||||
+1
@@ -10,4 +10,5 @@ bootBuildImage {
|
||||
imageName = "example/test-image-custom"
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
|
||||
runImage = "projects.registry.vmware.com/springboot/run:tiny-cnb"
|
||||
pullPolicy = "IF_NOT_PRESENT"
|
||||
}
|
||||
|
||||
+1
@@ -9,4 +9,5 @@ targetCompatibility = '1.8'
|
||||
bootBuildImage {
|
||||
imageName = "example/test-image-name"
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
|
||||
pullPolicy = "IF_NOT_PRESENT"
|
||||
}
|
||||
|
||||
+1
@@ -12,4 +12,5 @@ bootJar {
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
|
||||
pullPolicy = "IF_NOT_PRESENT"
|
||||
}
|
||||
|
||||
+1
@@ -12,5 +12,6 @@ targetCompatibility = '1.8'
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
|
||||
pullPolicy = "IF_NOT_PRESENT"
|
||||
network = "none"
|
||||
}
|
||||
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
plugins {
|
||||
id 'java'
|
||||
id 'org.springframework.boot' version '{version}'
|
||||
}
|
||||
|
||||
if (project.hasProperty('applyWarPlugin')) {
|
||||
apply plugin: 'war'
|
||||
}
|
||||
|
||||
sourceCompatibility = '1.8'
|
||||
targetCompatibility = '1.8'
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
|
||||
}
|
||||
+1
@@ -8,5 +8,6 @@ targetCompatibility = '1.8'
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
|
||||
pullPolicy = "IF_NOT_PRESENT"
|
||||
tags = [ "example.com/myapp:latest" ]
|
||||
}
|
||||
|
||||
+1
@@ -8,6 +8,7 @@ targetCompatibility = '1.8'
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
|
||||
pullPolicy = "IF_NOT_PRESENT"
|
||||
buildCache {
|
||||
volume {
|
||||
name = "cache-${rootProject.name}.build"
|
||||
|
||||
+1
@@ -8,5 +8,6 @@ targetCompatibility = '1.8'
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
|
||||
pullPolicy = "IF_NOT_PRESENT"
|
||||
archiveFile = bootWar.archiveFile
|
||||
}
|
||||
+1
@@ -8,5 +8,6 @@ targetCompatibility = '1.8'
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
|
||||
pullPolicy = "IF_NOT_PRESENT"
|
||||
environment = ["FORCE_FAILURE": "true"]
|
||||
}
|
||||
|
||||
+1
@@ -8,5 +8,6 @@ targetCompatibility = '1.8'
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
|
||||
pullPolicy = "IF_NOT_PRESENT"
|
||||
buildpacks = [ "urn:cnb:builder:example/does-not-exist:0.0.1" ]
|
||||
}
|
||||
|
||||
+1
@@ -8,5 +8,6 @@ targetCompatibility = '1.8'
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
|
||||
pullPolicy = "IF_NOT_PRESENT"
|
||||
tags = [ "example/Invalid-Tag-Name" ]
|
||||
}
|
||||
|
||||
+1
@@ -12,4 +12,5 @@ targetCompatibility = '1.8'
|
||||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
|
||||
pullPolicy = "IF_NOT_PRESENT"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user