diff --git a/build.gradle.kts b/build.gradle.kts index ae6a2ff..aa78c3d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,7 +12,7 @@ plugins { } group = "dev.adamko.kafkatorio" -version = "0.6.1" +version = "0.7.0" val licenseFile: RegularFile by extra(layout.projectDirectory.file("LICENSE")) diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/gradle/extensions.kt b/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/gradle/extensions.kt index 5f1400c..961f730 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/gradle/extensions.kt +++ b/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/gradle/extensions.kt @@ -91,3 +91,6 @@ fun Project.taskProvider(taskName: String): Provider = providers.provider }.flatMap { tasks.named(it) } + + +const val DOCKER_COMPOSE_TASK_GROUP = "docker-compose" diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/infra/docker-compose.gradle.kts b/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/infra/docker-compose.gradle.kts index 830c9fb..261b2fa 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/infra/docker-compose.gradle.kts +++ b/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/infra/docker-compose.gradle.kts @@ -1,5 +1,7 @@ package dev.adamko.kafkatorio.infra +import dev.adamko.kafkatorio.gradle.DOCKER_COMPOSE_TASK_GROUP +import dev.adamko.kafkatorio.task.DockerEnvUpdateTask import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs plugins { @@ -7,14 +9,13 @@ plugins { id("dev.adamko.kafkatorio.infra.process-runner") } -val dockerComposeTaskGroup: String by extra("docker-compose") val dockerComposeProjectName: String by extra(rootProject.name) val dockerSrcDir: Directory by extra(layout.projectDirectory.dir("src")) val dockerUp by tasks.registering(Exec::class) { - group = dockerComposeTaskGroup + group = DOCKER_COMPOSE_TASK_GROUP dependsOn(tasks.assemble) logging.captureStandardOutput(LogLevel.LIFECYCLE) @@ -25,7 +26,7 @@ val dockerUp by tasks.registering(Exec::class) { val dockerDown by tasks.registering(Exec::class) { - group = dockerComposeTaskGroup + group = DOCKER_COMPOSE_TASK_GROUP logging.captureStandardOutput(LogLevel.LIFECYCLE) @@ -35,7 +36,7 @@ val dockerDown by tasks.registering(Exec::class) { val dockerRemove by tasks.registering(Exec::class) { - group = dockerComposeTaskGroup + group = DOCKER_COMPOSE_TASK_GROUP logging.captureStandardOutput(LogLevel.LIFECYCLE) @@ -45,17 +46,13 @@ val dockerRemove by tasks.registering(Exec::class) { afterEvaluate { - tasks.named("processRun") { dependsOn(dockerUp, dockerEnv) } + tasks.named("processRun") { dependsOn(dockerUp, dockerEnvUpdate) } tasks.named("processKill") { dependsOn(dockerDown) } } -val dockerEnv by tasks.registering(WriteProperties::class) { - group = dockerComposeTaskGroup - - logging.captureStandardOutput(LogLevel.LIFECYCLE) - - setOutputFile(dockerSrcDir.file(".env")) +val dockerEnvUpdate by tasks.registering(DockerEnvUpdateTask::class) { + dotEnvFile.set(dockerSrcDir.file(".env")) properties( "COMPOSE_PROJECT_NAME" to dockerComposeProjectName, @@ -64,4 +61,4 @@ val dockerEnv by tasks.registering(WriteProperties::class) { } -tasks.assemble { dependsOn(dockerEnv) } +tasks.assemble { dependsOn(dockerEnvUpdate) } diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/DockerEnvUpdateTask.kt b/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/DockerEnvUpdateTask.kt new file mode 100644 index 0000000..cda0978 --- /dev/null +++ b/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/DockerEnvUpdateTask.kt @@ -0,0 +1,27 @@ +package dev.adamko.kafkatorio.task + +import dev.adamko.kafkatorio.gradle.DOCKER_COMPOSE_TASK_GROUP +import javax.inject.Inject +import org.gradle.api.file.RegularFileProperty +import org.gradle.api.logging.LogLevel +import org.gradle.api.model.ObjectFactory +import org.gradle.api.tasks.CacheableTask +import org.gradle.api.tasks.Internal +import org.gradle.api.tasks.WriteProperties + + +@CacheableTask +open class DockerEnvUpdateTask @Inject constructor( + private val objects: ObjectFactory +) : WriteProperties() { + + @Internal + val dotEnvFile: RegularFileProperty = objects.fileProperty() + + init { + group = DOCKER_COMPOSE_TASK_GROUP + super.setOutputFile(dotEnvFile) + super.getLogging().captureStandardOutput(LogLevel.LIFECYCLE) + } + +} diff --git a/modules/events-mod/package-lock.json b/modules/events-mod/package-lock.json index 3eb3396..840585c 100644 --- a/modules/events-mod/package-lock.json +++ b/modules/events-mod/package-lock.json @@ -1,6 +1,6 @@ { "name": "kafkatorio-events-mod", - "version": "0.6.1", + "version": "0.7.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/modules/events-mod/package.json b/modules/events-mod/package.json index 9099d70..5ba45ac 100644 --- a/modules/events-mod/package.json +++ b/modules/events-mod/package.json @@ -1,6 +1,6 @@ { "name": "kafkatorio-events-mod", - "version": "0.6.1", + "version": "0.7.0", "private": true, "scripts": { "build": "tstl", diff --git a/modules/events-server/build.gradle.kts b/modules/events-server/build.gradle.kts index a2a99f3..b2b9382 100644 --- a/modules/events-server/build.gradle.kts +++ b/modules/events-server/build.gradle.kts @@ -1,3 +1,4 @@ +import dev.adamko.kafkatorio.task.DockerEnvUpdateTask import dev.adamko.kafkatorio.task.KafkaConsumerGroupsTask import org.jetbrains.kotlin.gradle.tasks.KotlinCompile @@ -106,3 +107,14 @@ idea { ) } } + + +val dockerEnvUpdate by tasks.registering(DockerEnvUpdateTask::class) { + dotEnvFile.set(layout.projectDirectory.file("docker/.env")) + + properties( + "COMPOSE_PROJECT_NAME" to rootProject.name, + "KAFKATORIO_VERSION" to project.version, + ) +} +tasks.assemble { dependsOn(dockerEnvUpdate) } diff --git a/modules/events-server/docker/.env b/modules/events-server/docker/.env index 4a03adb..e000eaa 100644 --- a/modules/events-server/docker/.env +++ b/modules/events-server/docker/.env @@ -1,3 +1,3 @@ -# Do not edit manually. This file was created with task 'dockerEnv' +# Do not edit manually. This file was created with task 'dockerEnvUpdate' COMPOSE_PROJECT_NAME=kafkatorio -KAFKATORIO_VERSION=0.6.1 +KAFKATORIO_VERSION=0.7.0 diff --git a/modules/infra-factorio-server/build.gradle.kts b/modules/infra-factorio-server/build.gradle.kts index 11c61b7..6e5f8b2 100644 --- a/modules/infra-factorio-server/build.gradle.kts +++ b/modules/infra-factorio-server/build.gradle.kts @@ -53,7 +53,7 @@ tasks.dockerUp { } -tasks.dockerEnv { +tasks.dockerEnvUpdate { properties("FACTORIO_VERSION" to libs.versions.factorio.get()) } diff --git a/modules/infra-factorio-server/src/.env b/modules/infra-factorio-server/src/.env index c6d1744..e0b28af 100644 --- a/modules/infra-factorio-server/src/.env +++ b/modules/infra-factorio-server/src/.env @@ -1,4 +1,4 @@ -# Do not edit manually. This file was created with task 'dockerEnv' +# Do not edit manually. This file was created with task 'dockerEnvUpdate' COMPOSE_PROJECT_NAME=kafkatorio FACTORIO_VERSION=1.1.61 -KAFKATORIO_VERSION=0.6.1 +KAFKATORIO_VERSION=0.7.0 diff --git a/modules/infra-kafka-cluster/build.gradle.kts b/modules/infra-kafka-cluster/build.gradle.kts index dba548c..9341a8e 100644 --- a/modules/infra-kafka-cluster/build.gradle.kts +++ b/modules/infra-kafka-cluster/build.gradle.kts @@ -4,7 +4,7 @@ plugins { description = "Kafka cluster" -tasks.dockerEnv { +tasks.dockerEnvUpdate { properties( "GRAFANA_VERSION" to libs.versions.grafana, "PROMETHEUS_VERSION" to libs.versions.prometheus, diff --git a/modules/infra-kafka-cluster/src/.env b/modules/infra-kafka-cluster/src/.env index d33aea8..2279b0c 100644 --- a/modules/infra-kafka-cluster/src/.env +++ b/modules/infra-kafka-cluster/src/.env @@ -1,7 +1,7 @@ -# Do not edit manually. This file was created with task 'dockerEnv' +# Do not edit manually. This file was created with task 'dockerEnvUpdate' COMPOSE_PROJECT_NAME=kafkatorio GRAFANA_VERSION=8.5.0 -KAFKATORIO_VERSION=0.6.1 +KAFKATORIO_VERSION=0.7.0 KAFKA_DL_URL=https\://dlcdn.apache.org/kafka/3.2.0/kafka_2.13-3.2.0.tgz KAFKA_VERSION=3.2.0 PROMETHEUS_VERSION=v2.34.0 diff --git a/modules/infra-kafka-pipe/build.gradle.kts b/modules/infra-kafka-pipe/build.gradle.kts index ab7f0a3..58301f1 100644 --- a/modules/infra-kafka-pipe/build.gradle.kts +++ b/modules/infra-kafka-pipe/build.gradle.kts @@ -15,7 +15,7 @@ tasks.dockerUp { val dockerBuildKafkaPipe by tasks.registering(DockerComposeExec::class) { - dependsOn(tasks.dockerEnv) + dependsOn(tasks.dockerEnvUpdate) dockerComposeDir.set(dockerSrcDir) command.set("docker-compose build kafka-pipe") diff --git a/modules/infra-kafka-pipe/src/.env b/modules/infra-kafka-pipe/src/.env index 4a03adb..e000eaa 100644 --- a/modules/infra-kafka-pipe/src/.env +++ b/modules/infra-kafka-pipe/src/.env @@ -1,3 +1,3 @@ -# Do not edit manually. This file was created with task 'dockerEnv' +# Do not edit manually. This file was created with task 'dockerEnvUpdate' COMPOSE_PROJECT_NAME=kafkatorio -KAFKATORIO_VERSION=0.6.1 +KAFKATORIO_VERSION=0.7.0 diff --git a/modules/web-map/build.gradle.kts b/modules/web-map/build.gradle.kts index 091ccfb..4905ccf 100644 --- a/modules/web-map/build.gradle.kts +++ b/modules/web-map/build.gradle.kts @@ -144,3 +144,14 @@ fun KotlinDependencyHandler.kvision( // resolution("webpack-dev-server", "4.9.1") // } //} + + +val dockerEnvUpdate by tasks.registering(dev.adamko.kafkatorio.task.DockerEnvUpdateTask::class) { + dotEnvFile.set(layout.projectDirectory.file("docker/.env")) + + properties( + "COMPOSE_PROJECT_NAME" to rootProject.name, + "KAFKATORIO_VERSION" to project.version, + ) +} +tasks.assemble { dependsOn(dockerEnvUpdate) } diff --git a/modules/web-map/docker/.env b/modules/web-map/docker/.env index 4a03adb..e000eaa 100644 --- a/modules/web-map/docker/.env +++ b/modules/web-map/docker/.env @@ -1,3 +1,3 @@ -# Do not edit manually. This file was created with task 'dockerEnv' +# Do not edit manually. This file was created with task 'dockerEnvUpdate' COMPOSE_PROJECT_NAME=kafkatorio -KAFKATORIO_VERSION=0.6.1 +KAFKATORIO_VERSION=0.7.0