Skip to content

Commit 8acf9af

Browse files
Use String instead of enum for Gradle task Property
See gh-32769
1 parent 9948fc3 commit 8acf9af

File tree

20 files changed

+52
-22
lines changed

20 files changed

+52
-22
lines changed

spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/BootBuildImage.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ public BootBuildImage() {
175175
@Input
176176
@Optional
177177
@Option(option = "pullPolicy", description = "The image pull policy")
178-
public abstract Property<PullPolicy> getPullPolicy();
178+
public abstract Property<String> getPullPolicy();
179179

180180
/**
181181
* Whether the built image should be pushed to a registry.
@@ -342,7 +342,7 @@ private BuildRequest customizeCreator(BuildRequest request) {
342342
}
343343

344344
private BuildRequest customizePullPolicy(BuildRequest request) {
345-
PullPolicy pullPolicy = getPullPolicy().getOrNull();
345+
PullPolicy pullPolicy = getPullPolicy().map(PullPolicy::valueOf).getOrNull();
346346
if (pullPolicy != null) {
347347
request = request.withPullPolicy(pullPolicy);
348348
}

spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests.java

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ class BootBuildImageIntegrationTests {
6868
void buildsImageWithDefaultBuilder() throws IOException {
6969
writeMainClass();
7070
writeLongNameResource();
71-
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
71+
BuildResult result = this.gradleBuild.build("bootBuildImage");
7272
String projectName = this.gradleBuild.getProjectDir().getName();
7373
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
7474
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
@@ -83,8 +83,7 @@ void buildsImageWithDefaultBuilder() throws IOException {
8383
void buildsImageWithWarPackaging() throws IOException {
8484
writeMainClass();
8585
writeLongNameResource();
86-
BuildResult result = this.gradleBuild.build("bootBuildImage", "-PapplyWarPlugin",
87-
"--pullPolicy=IF_NOT_PRESENT");
86+
BuildResult result = this.gradleBuild.build("bootBuildImage", "-PapplyWarPlugin");
8887
String projectName = this.gradleBuild.getProjectDir().getName();
8988
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
9089
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
@@ -101,7 +100,7 @@ void buildsImageWithWarPackaging() throws IOException {
101100
void buildsImageWithWarPackagingAndJarConfiguration() throws IOException {
102101
writeMainClass();
103102
writeLongNameResource();
104-
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
103+
BuildResult result = this.gradleBuild.build("bootBuildImage");
105104
String projectName = this.gradleBuild.getProjectDir().getName();
106105
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
107106
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
@@ -117,7 +116,7 @@ void buildsImageWithWarPackagingAndJarConfiguration() throws IOException {
117116
void buildsImageWithCustomName() throws IOException {
118117
writeMainClass();
119118
writeLongNameResource();
120-
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
119+
BuildResult result = this.gradleBuild.build("bootBuildImage");
121120
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
122121
assertThat(result.getOutput()).contains("example/test-image-name");
123122
assertThat(result.getOutput()).contains("---> Test Info buildpack building");
@@ -129,7 +128,7 @@ void buildsImageWithCustomName() throws IOException {
129128
void buildsImageWithCustomBuilderAndRunImage() throws IOException {
130129
writeMainClass();
131130
writeLongNameResource();
132-
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
131+
BuildResult result = this.gradleBuild.build("bootBuildImage");
133132
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
134133
assertThat(result.getOutput()).contains("example/test-image-custom");
135134
assertThat(result.getOutput()).contains("---> Test Info buildpack building");
@@ -157,7 +156,7 @@ void buildsImageWithPullPolicy() throws IOException {
157156
writeMainClass();
158157
writeLongNameResource();
159158
String projectName = this.gradleBuild.getProjectDir().getName();
160-
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=ALWAYS");
159+
BuildResult result = this.gradleBuild.build("bootBuildImage");
161160
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
162161
assertThat(result.getOutput()).contains("Pulled builder image").contains("Pulled run image");
163162
result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
@@ -170,7 +169,7 @@ void buildsImageWithPullPolicy() throws IOException {
170169
void buildsImageWithBuildpackFromBuilder() throws IOException {
171170
writeMainClass();
172171
writeLongNameResource();
173-
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
172+
BuildResult result = this.gradleBuild.build("bootBuildImage");
174173
String projectName = this.gradleBuild.getProjectDir().getName();
175174
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
176175
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
@@ -185,7 +184,7 @@ void buildsImageWithBuildpackFromDirectory() throws IOException {
185184
writeMainClass();
186185
writeLongNameResource();
187186
writeBuildpackContent();
188-
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
187+
BuildResult result = this.gradleBuild.build("bootBuildImage");
189188
String projectName = this.gradleBuild.getProjectDir().getName();
190189
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
191190
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
@@ -200,7 +199,7 @@ void buildsImageWithBuildpackFromTarGzip() throws IOException {
200199
writeLongNameResource();
201200
writeBuildpackContent();
202201
tarGzipBuildpackContent();
203-
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
202+
BuildResult result = this.gradleBuild.build("bootBuildImage");
204203
String projectName = this.gradleBuild.getProjectDir().getName();
205204
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
206205
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
@@ -212,7 +211,7 @@ void buildsImageWithBuildpackFromTarGzip() throws IOException {
212211
void buildsImageWithBuildpacksFromImages() throws IOException {
213212
writeMainClass();
214213
writeLongNameResource();
215-
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
214+
BuildResult result = this.gradleBuild.build("bootBuildImage");
216215
String projectName = this.gradleBuild.getProjectDir().getName();
217216
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
218217
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
@@ -226,7 +225,7 @@ void buildsImageWithBinding() throws IOException {
226225
writeMainClass();
227226
writeLongNameResource();
228227
writeCertificateBindingFiles();
229-
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
228+
BuildResult result = this.gradleBuild.build("bootBuildImage");
230229
String projectName = this.gradleBuild.getProjectDir().getName();
231230
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
232231
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
@@ -242,7 +241,7 @@ void buildsImageWithBinding() throws IOException {
242241
void buildsImageWithTag() throws IOException {
243242
writeMainClass();
244243
writeLongNameResource();
245-
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
244+
BuildResult result = this.gradleBuild.build("bootBuildImage");
246245
String projectName = this.gradleBuild.getProjectDir().getName();
247246
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
248247
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
@@ -256,7 +255,7 @@ void buildsImageWithTag() throws IOException {
256255
void buildsImageWithLaunchScript() throws IOException {
257256
writeMainClass();
258257
writeLongNameResource();
259-
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
258+
BuildResult result = this.gradleBuild.build("bootBuildImage");
260259
String projectName = this.gradleBuild.getProjectDir().getName();
261260
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
262261
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
@@ -269,7 +268,7 @@ void buildsImageWithLaunchScript() throws IOException {
269268
void buildsImageWithNetworkModeNone() throws IOException {
270269
writeMainClass();
271270
writeLongNameResource();
272-
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
271+
BuildResult result = this.gradleBuild.build("bootBuildImage");
273272
String projectName = this.gradleBuild.getProjectDir().getName();
274273
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
275274
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
@@ -283,7 +282,7 @@ void buildsImageWithNetworkModeNone() throws IOException {
283282
void buildsImageWithVolumeCaches() throws IOException {
284283
writeMainClass();
285284
writeLongNameResource();
286-
BuildResult result = this.gradleBuild.build("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
285+
BuildResult result = this.gradleBuild.build("bootBuildImage");
287286
String projectName = this.gradleBuild.getProjectDir().getName();
288287
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
289288
assertThat(result.getOutput()).contains("docker.io/library/" + projectName);
@@ -297,7 +296,7 @@ void buildsImageWithVolumeCaches() throws IOException {
297296
void failsWithBuilderError() throws IOException {
298297
writeMainClass();
299298
writeLongNameResource();
300-
BuildResult result = this.gradleBuild.buildAndFail("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
299+
BuildResult result = this.gradleBuild.buildAndFail("bootBuildImage");
301300
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.FAILED);
302301
assertThat(result.getOutput()).contains("Forced builder failure");
303302
assertThat(result.getOutput()).containsPattern("Builder lifecycle '.*' failed with status code");
@@ -317,7 +316,7 @@ void failsWithInvalidImageName() throws IOException {
317316
void failsWithBuildpackNotInBuilder() throws IOException {
318317
writeMainClass();
319318
writeLongNameResource();
320-
BuildResult result = this.gradleBuild.buildAndFail("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
319+
BuildResult result = this.gradleBuild.buildAndFail("bootBuildImage");
321320
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.FAILED);
322321
assertThat(result.getOutput()).contains("'urn:cnb:builder:example/does-not-exist:0.0.1' not found in builder");
323322
}
@@ -326,7 +325,7 @@ void failsWithBuildpackNotInBuilder() throws IOException {
326325
void failsWithInvalidTag() throws IOException {
327326
writeMainClass();
328327
writeLongNameResource();
329-
BuildResult result = this.gradleBuild.buildAndFail("bootBuildImage", "--pullPolicy=IF_NOT_PRESENT");
328+
BuildResult result = this.gradleBuild.buildAndFail("bootBuildImage");
330329
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.FAILED);
331330
assertThat(result.getOutput()).containsPattern("Unable to parse image reference")
332331
.containsPattern("example/Invalid-Tag-Name");

spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/bundling/BootBuildImageTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ void whenUsingDefaultConfigurationThenRequestHasAlwaysPullPolicy() {
216216

217217
@Test
218218
void whenPullPolicyIsConfiguredThenRequestHasPullPolicy() {
219-
this.buildImage.getPullPolicy().set(PullPolicy.NEVER);
219+
this.buildImage.getPullPolicy().set(PullPolicy.NEVER.toString());
220220
assertThat(this.buildImage.createRequest().getPullPolicy()).isEqualTo(PullPolicy.NEVER);
221221
}
222222

spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithBinding.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@ targetCompatibility = '1.8'
88

99
bootBuildImage {
1010
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
11+
pullPolicy = "IF_NOT_PRESENT"
1112
bindings = [ "${projectDir}/bindings/ca-certificates:/platform/bindings/certificates" ]
1213
}

spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithBuildpackFromBuilder.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@ targetCompatibility = '1.8'
88

99
bootBuildImage {
1010
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
11+
pullPolicy = "IF_NOT_PRESENT"
1112
buildpacks = [ "spring-boot/test-info" ]
1213
}

spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithBuildpackFromDirectory.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@ targetCompatibility = '1.8'
88

99
bootBuildImage {
1010
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
11+
pullPolicy = "IF_NOT_PRESENT"
1112
buildpacks = [ "file://${projectDir}/buildpack/hello-world" ]
1213
}

spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithBuildpackFromTarGzip.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@ targetCompatibility = '1.8'
88

99
bootBuildImage {
1010
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
11+
pullPolicy = "IF_NOT_PRESENT"
1112
buildpacks = [ "file://${projectDir}/hello-world.tgz" ]
1213
}

spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithBuildpacksFromImages.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@ targetCompatibility = '1.8'
88

99
bootBuildImage {
1010
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
11+
pullPolicy = "IF_NOT_PRESENT"
1112
buildpacks = ["projects.registry.vmware.com/springboot/test-info:latest"]
1213
}

spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithCustomBuilderAndRunImage.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ bootBuildImage {
1010
imageName = "example/test-image-custom"
1111
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
1212
runImage = "projects.registry.vmware.com/springboot/run:tiny-cnb"
13+
pullPolicy = "IF_NOT_PRESENT"
1314
}

spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests-buildsImageWithCustomName.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ targetCompatibility = '1.8'
99
bootBuildImage {
1010
imageName = "example/test-image-name"
1111
builder = "projects.registry.vmware.com/springboot/spring-boot-cnb-builder:0.0.1"
12+
pullPolicy = "IF_NOT_PRESENT"
1213
}

0 commit comments

Comments
 (0)