Skip to content

Commit 404b310

Browse files
committed
Serialize Windows servlet image builds
1 parent 94d2e61 commit 404b310

1 file changed

Lines changed: 15 additions & 0 deletions

File tree

smoke-tests/images/servlet/build.gradle.kts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import com.bmuschko.gradle.docker.tasks.image.DockerBuildImage
22
import com.bmuschko.gradle.docker.tasks.image.DockerPushImage
3+
import org.gradle.api.services.BuildService
4+
import org.gradle.api.services.BuildServiceParameters
35

46
plugins {
57
id("otel.spotless-conventions")
@@ -16,11 +18,20 @@ data class ImageTarget(
1618
val windows: Boolean = true
1719
)
1820

21+
abstract class WindowsDockerBuildService : BuildService<BuildServiceParameters.None>
22+
1923
val extraTag = findProperty("extraTag")
2024
?: java.time.format.DateTimeFormatter.ofPattern("yyyyMMdd.HHmmSS").format(java.time.LocalDateTime.now())
2125

2226
val latestJava = "25" // renovate(java-version)
2327

28+
gradle.sharedServices.registerIfAbsent(
29+
"windowsDockerBuildService",
30+
WindowsDockerBuildService::class.java
31+
) {
32+
maxParallelUsages.set(1)
33+
}
34+
2435
// Each line under appserver describes one matrix of (version x vm x jdk), dockerfile key overrides
2536
// Dockerfile name, args key passes raw arguments to docker build
2637
val targets = mapOf(
@@ -352,6 +363,10 @@ fun configureImage(
352363
group = "build"
353364
description = "Builds Docker image with $server $version on JDK $jdk-$vm${if (isWindows) " on Windows" else ""}"
354365

366+
if (isWindows) {
367+
usesService(gradle.sharedServices.registrations["windowsDockerBuildService"].service)
368+
}
369+
355370
inputDir.set(dockerWorkingDir)
356371
images.add(image)
357372
dockerFile.set(File(dockerWorkingDir.get().asFile, dockerFileName))

0 commit comments

Comments
 (0)