Use String instead of enum for Gradle task Property
See gh-32769
This commit is contained in:
parent
9948fc3e39
commit
8acf9afccb
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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" ]
|
||||
}
|
||||
|
|
|
@ -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" ]
|
||||
}
|
||||
|
|
|
@ -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" ]
|
||||
}
|
||||
|
|
|
@ -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" ]
|
||||
}
|
||||
|
|
|
@ -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"]
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
|
|
|
@ -12,4 +12,5 @@ bootJar {
|
|||
|
||||
bootBuildImage {
|
||||
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
|
||||
pullPolicy = "IF_NOT_PRESENT"
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
}
|
|
@ -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" ]
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
}
|
|
@ -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"]
|
||||
}
|
||||
|
|
|
@ -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" ]
|
||||
}
|
||||
|
|
|
@ -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" ]
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue