From 1439e816282c94613d28df17e1936fcb1d9a0428 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Sun, 9 Jan 2022 18:48:32 +0100 Subject: [PATCH] maybe fix docker build for kafka pipe?? again???? --- modules/infra-kafka-pipe/build.gradle.kts | 37 ++++++++++++++++------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/modules/infra-kafka-pipe/build.gradle.kts b/modules/infra-kafka-pipe/build.gradle.kts index d183740..e2878bb 100644 --- a/modules/infra-kafka-pipe/build.gradle.kts +++ b/modules/infra-kafka-pipe/build.gradle.kts @@ -1,3 +1,4 @@ +import org.jetbrains.kotlin.incremental.md5 import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs plugins { @@ -8,6 +9,11 @@ description = "Send events from a Factorio server to a Kafka topic " val dockerSrcDir: Directory by extra +fun Directory.filesChecksum() = asFileTree + .files + .map { it.readBytes() + it.absolutePath.toByteArray() } + .fold(byteArrayOf()) { acc, bytes -> acc + bytes } + .md5() tasks.dockerUp { dependsOn(":modules:infra-kafka-cluster:dockerUp") @@ -21,21 +27,30 @@ val dockerBuildKafkaPipe by tasks.registering(Exec::class) { dependsOn(tasks.dockerEnv) inputs.dir(dockerSrcDir) + inputs.property("dockerSrcDirChecksum") { dockerSrcDir.filesChecksum() } - val imageIdFile = file("$temporaryDir/docker-image-id.txt") - outputs.file(imageIdFile) + outputs.upToDateWhen { + it.inputs.properties["dockerSrcDirChecksum"] as? Long? == dockerSrcDir.filesChecksum() + } + +// val imageIdFile = file("$temporaryDir/docker-image-id.txt") +// outputs.file(imageIdFile) workingDir = dockerSrcDir.asFile commandLine = parseSpaceSeparatedArgs(""" docker-compose build kafka-pipe """) - doLast { - imageIdFile.outputStream().use { os -> - exec { - workingDir = dockerSrcDir.asFile - commandLine = parseSpaceSeparatedArgs(""" docker-compose images -q kafka-pipe """) - standardOutput = os - } - } - } +// doLast { +// sync { +// from(dockerSrcDir) +// into(temporaryDir) +// } +// imageIdFile.outputStream().use { os -> +// exec { +// workingDir = dockerSrcDir.asFile +// commandLine = parseSpaceSeparatedArgs(""" docker-compose images -q kafka-pipe """) +// standardOutput = os +// } +// } +//} } tasks.assemble { dependsOn(dockerBuildKafkaPipe) }