migrate buildSrc plugins to includedBuild plugins

This commit is contained in:
Adam 2022-09-18 20:49:32 +02:00
parent 805d4c8170
commit f12a505d22
40 changed files with 159 additions and 112 deletions

3
.gitignore vendored
View file

@ -4,6 +4,9 @@
.state/
# Docker .env files are generated from a Gradle task
.env
.idea/
!.idea/icon.svg

View file

@ -1,9 +1,10 @@
import dev.adamko.kafkatorio.gradle.excludeGeneratedGradleDsl
import java.time.LocalDate
import kafkatorio.extensions.excludeGeneratedGradleDsl
plugins {
idea
base
id("kafkatorio.conventions.base")
// `project-report`
// `build-dashboard`
}

View file

@ -3,8 +3,8 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
idea
`kotlin-dsl`
kotlin("jvm") version "1.6.21"
kotlin("plugin.serialization") version "1.6.21"
kotlin("jvm") version embeddedKotlinVersion
kotlin("plugin.serialization") version embeddedKotlinVersion
}
val gradleJvmTarget = "11"

View file

@ -5,6 +5,35 @@ plugins {
kotlin("jvm") version embeddedKotlinVersion
}
dependencies {
implementation(platform(libs.kotlin.bom))
implementation("org.jetbrains.kotlin:kotlin-serialization")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.jetbrains.kotlin:kotlin-compiler-embeddable")
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:${libs.versions.kotlin.get()}")
implementation(platform(libs.kotlinx.coroutines.bom))
implementation(libs.kotlinx.coroutines.core)
implementation(platform(libs.kotlinxSerialization.bom))
implementation(libs.kotlinxSerialization.core)
implementation(libs.kotlinxSerialization.json)
implementation("com.github.node-gradle:gradle-node-plugin:${libs.versions.gradleNodePlugin.get()}")
implementation(platform(libs.kotest.bom))
implementation("io.kotest:kotest-framework-multiplatform-plugin-gradle")
implementation("io.kvision:io.kvision.gradle.plugin:${libs.versions.kvision.get()}")
implementation("net.swiftzer.semver:semver:${libs.versions.semver.get()}")
implementation(platform(libs.okio.bom))
implementation(libs.okio.core)
implementation(libs.kotlinx.cli)
}
val gradleJvmTarget = "11"
kotlin {

View file

@ -8,3 +8,11 @@ pluginManagement {
plugins {
id("kafkatorio.convention.settings.repositories")
}
dependencyResolutionManagement {
versionCatalogs {
create("libs") {
from(files("../../gradle/libs.versions.toml"))
}
}
}

View file

@ -1,4 +1,4 @@
package dev.adamko.kafkatorio
package kafkatorio.conventions
import io.kvision.gradle.KVisionExtension
import org.gradle.api.Project

View file

@ -1,12 +1,12 @@
package dev.adamko.kafkatorio.infra
package kafkatorio.conventions.infra
import dev.adamko.kafkatorio.gradle.DOCKER_COMPOSE_TASK_GROUP
import dev.adamko.kafkatorio.task.DockerEnvUpdateTask
import kafkatorio.tasks.DockerEnvUpdateTask
import kafkatorio.extensions.DOCKER_COMPOSE_TASK_GROUP
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
plugins {
base
id("dev.adamko.kafkatorio.infra.process-runner")
id("kafkatorio.conventions.infra.process-runner")
}
@ -55,6 +55,7 @@ val dockerEnvUpdate by tasks.registering(DockerEnvUpdateTask::class) {
properties(
"COMPOSE_PROJECT_NAME" to dockerComposeProjectName,
"KAFKATORIO_VERSION" to project.version,
"REGISTRY_HOST" to providers.gradleProperty("dockerContainerRegistryHost"),
)
}

View file

@ -1,7 +1,10 @@
package dev.adamko.kafkatorio.infra
package kafkatorio.conventions.infra
import org.gradle.kotlin.dsl.extra
import org.gradle.kotlin.dsl.registering
plugins {
id("dev.adamko.kafkatorio.base")
id("kafkatorio.conventions.base")
}
val processRunnerTaskGroup: String by extra("processes")

View file

@ -1,7 +1,7 @@
package dev.adamko.kafkatorio.lang
package kafkatorio.conventions.lang
//import dev.adamko.kafkatorio.Versions
import dev.adamko.kafkatorio.relocateKotlinJsStore
import kafkatorio.conventions.relocateKotlinJsStore
//import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
//import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
//import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject
@ -12,7 +12,7 @@ import dev.adamko.kafkatorio.relocateKotlinJsStore
plugins {
kotlin("js")
id("dev.adamko.kafkatorio.base")
id("kafkatorio.conventions.base")
}
//dependencies {

View file

@ -1,9 +1,9 @@
package dev.adamko.kafkatorio.lang
package kafkatorio.conventions.lang
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
id("dev.adamko.kafkatorio.base")
id("kafkatorio.conventions.base")
kotlin("jvm")
}

View file

@ -1,13 +1,13 @@
package dev.adamko.kafkatorio.lang
package kafkatorio.conventions.lang
import dev.adamko.kafkatorio.relocateKotlinJsStore
import kafkatorio.conventions.relocateKotlinJsStore
//import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
//import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
//import org.jetbrains.kotlin.gradle.targets.js.yarn.YarnRootExtension
plugins {
id("dev.adamko.kafkatorio.base")
id("kafkatorio.conventions.base")
// id("dev.adamko.kafkatorio.lang.node")
kotlin("multiplatform")
// id("io.kotest.multiplatform") // disabled because of https://github.com/kotest/kotest/issues/3141

View file

@ -1,14 +1,14 @@
package dev.adamko.kafkatorio.lang
package kafkatorio.conventions.lang
import com.github.gradle.node.npm.task.NpmInstallTask
import dev.adamko.kafkatorio.Versions
import dev.adamko.kafkatorio.task.UpdatePackageJson
import kafkatorio.conventions.Versions
import kafkatorio.tasks.UpdatePackageJson
import kotlinx.serialization.json.put
plugins {
id("com.github.node-gradle.node")
id("dev.adamko.kafkatorio.base")
id("kafkatorio.conventions.base")
}

View file

@ -1,4 +1,4 @@
package dev.adamko.kafkatorio.gradle
package kafkatorio.distributions
import org.gradle.api.artifacts.Configuration
import org.gradle.api.attributes.Bundling

View file

@ -1,4 +1,4 @@
package dev.adamko.kafkatorio.gradle
package kafkatorio.extensions
import java.io.ByteArrayOutputStream
import org.gradle.api.Project

View file

@ -1,6 +1,6 @@
package dev.adamko.kafkatorio.task
package kafkatorio.tasks
import dev.adamko.kafkatorio.gradle.filesChecksum
import kafkatorio.extensions.filesChecksum
import javax.inject.Inject
import org.gradle.api.DefaultTask
import org.gradle.api.file.DirectoryProperty

View file

@ -1,7 +1,7 @@
package dev.adamko.kafkatorio.task
package kafkatorio.tasks
import dev.adamko.kafkatorio.gradle.DOCKER_COMPOSE_TASK_GROUP
import javax.inject.Inject
import kafkatorio.extensions.DOCKER_COMPOSE_TASK_GROUP
import org.gradle.api.file.RegularFileProperty
import org.gradle.api.logging.LogLevel
import org.gradle.api.model.ObjectFactory

View file

@ -1,4 +1,4 @@
package dev.adamko.kafkatorio.task
package kafkatorio.tasks
import javax.inject.Inject
import org.gradle.api.file.DirectoryProperty

View file

@ -1,7 +1,7 @@
package dev.adamko.kafkatorio.task
package kafkatorio.tasks
import dev.adamko.kafkatorio.task.UpdatePackageJson.Companion.foldParseToJsonObject
import dev.adamko.kafkatorio.task.UpdatePackageJson.Companion.parseToJsonObject
import kafkatorio.tasks.UpdatePackageJson.Companion.foldParseToJsonObject
import kafkatorio.tasks.UpdatePackageJson.Companion.parseToJsonObject
import kotlinx.serialization.json.JsonObject
import org.gradle.api.Task
import org.gradle.api.internal.specs.ExplainingSpec

View file

@ -1,6 +1,6 @@
package dev.adamko.kafkatorio.task
package kafkatorio.tasks
import dev.adamko.kafkatorio.gradle.execCapture
import kafkatorio.extensions.execCapture
import org.gradle.api.DefaultTask
import org.gradle.api.logging.LogLevel
import org.gradle.api.tasks.Input

View file

@ -1,7 +1,6 @@
package dev.adamko.kafkatorio.task
package kafkatorio.tasks
import java.io.ByteArrayOutputStream
import javax.inject.Inject
import org.gradle.api.Task
import org.gradle.api.internal.specs.ExplainingSpec
import org.gradle.api.tasks.Exec

View file

@ -1,4 +1,4 @@
package dev.adamko.kafkatorio.task
package kafkatorio.tasks
import com.github.gradle.node.npm.task.NpmTask
import javax.inject.Inject

View file

@ -1,7 +1,7 @@
package dev.adamko.kafkatorio.task
package kafkatorio.tasks
import com.github.gradle.node.NodePlugin
import dev.adamko.kafkatorio.*
import kafkatorio.*
import java.io.File
import javax.inject.Inject
import kotlinx.serialization.encodeToString

View file

@ -9,7 +9,7 @@ plugins {
id("kafkatorio.convention.settings.repositories")
}
dependencyResolutionManagement {
dependencyResolutionManagement {
versionCatalogs {
create("libs") {
from(files("../../gradle/libs.versions.toml"))

View file

@ -5,6 +5,33 @@ plugins {
kotlin("jvm") version embeddedKotlinVersion
}
dependencies {
implementation(platform(libs.kotlin.bom))
implementation(platform(libs.kotlinx.coroutines.bom))
implementation(libs.kotlinx.coroutines.core)
implementation(platform(libs.kotlinxSerialization.bom))
implementation(libs.kotlinxSerialization.core)
implementation(libs.kotlinxSerialization.json)
implementation(platform(libs.okio.bom))
implementation(libs.okio.core)
implementation(libs.kotlinx.cli)
implementation(platform(libs.ktor.bom))
implementation(libs.ktorClient.auth)
implementation(libs.ktorClient.contentNegotiation)
implementation(libs.ktorClient.core)
implementation(libs.ktorClient.encoding)
implementation(libs.ktorClient.logging)
implementation(libs.ktorClient.cio)
implementation(libs.ktorClient.resources)
implementation(libs.ktorSerialization.kotlinxJson)
}
val gradleJvmTarget = "11"
kotlin {

View file

@ -10,3 +10,11 @@ pluginManagement {
plugins {
id("kafkatorio.convention.settings.repositories")
}
dependencyResolutionManagement {
versionCatalogs {
create("libs") {
from(files("../../gradle/libs.versions.toml"))
}
}
}

View file

@ -1,13 +1,13 @@
import dev.adamko.kafkatorio.gradle.asProvider
import dev.adamko.kafkatorio.gradle.typescriptAttributes
import dev.adamko.kafkatorio.task.GenerateTypeScriptTask
import kafkatorio.distributions.asProvider
import kafkatorio.distributions.typescriptAttributes
import kafkatorio.tasks.GenerateTypeScriptTask
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmCompilation
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
dev.adamko.kafkatorio.lang.`kotlin-multiplatform`
id("kafkatorio.conventions.lang.kotlin-multiplatform")
kotlin("plugin.serialization")
distribution
}

View file

@ -1,9 +1,9 @@
import dev.adamko.kafkatorio.factoriomod.portal.FactorioModPublishTask
import dev.adamko.kafkatorio.gradle.asConsumer
import dev.adamko.kafkatorio.gradle.asProvider
import dev.adamko.kafkatorio.gradle.factorioModAttributes
import dev.adamko.kafkatorio.gradle.typescriptAttributes
import dev.adamko.kafkatorio.task.TypescriptToLuaTask
import kafkatorio.distributions.asConsumer
import kafkatorio.distributions.asProvider
import kafkatorio.distributions.factorioModAttributes
import kafkatorio.distributions.typescriptAttributes
import kafkatorio.tasks.TypescriptToLuaTask
import kotlinx.serialization.json.put
import kotlinx.serialization.json.putJsonObject
import net.swiftzer.semver.SemVer
@ -12,7 +12,7 @@ import org.gradle.plugins.ide.idea.model.Module as IdeaImlModule
import org.gradle.plugins.ide.idea.model.Path as IdeaImlPath
plugins {
dev.adamko.kafkatorio.lang.node
id("kafkatorio.conventions.lang.node")
distribution
}

View file

@ -2,7 +2,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
dev.adamko.kafkatorio.lang.`kotlin-jvm`
id("kafkatorio.conventions.lang.kotlin-jvm")
kotlin("plugin.serialization")
// application
}

View file

@ -1,7 +1,7 @@
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
dev.adamko.kafkatorio.lang.`kotlin-jvm`
id("kafkatorio.conventions.lang.kotlin-jvm")
kotlin("plugin.serialization")
application
}

View file

@ -2,7 +2,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
dev.adamko.kafkatorio.lang.`kotlin-jvm`
id("kafkatorio.conventions.lang.kotlin-jvm")
kotlin("plugin.serialization")
application
}

View file

@ -2,7 +2,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
dev.adamko.kafkatorio.lang.`kotlin-jvm`
id("kafkatorio.conventions.lang.kotlin-jvm")
kotlin("plugin.serialization")
application
}

View file

@ -1,5 +1,5 @@
import dev.adamko.kafkatorio.task.DockerEnvUpdateTask
import dev.adamko.kafkatorio.task.KafkaConsumerGroupsTask
import kafkatorio.tasks.DockerEnvUpdateTask
import kafkatorio.tasks.KafkaConsumerGroupsTask
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

View file

@ -1,13 +1,13 @@
import dev.adamko.kafkatorio.factoriomod.FactorioMod
import dev.adamko.kafkatorio.gradle.asConsumer
import dev.adamko.kafkatorio.gradle.factorioModAttributes
import dev.adamko.kafkatorio.gradle.not
import dev.adamko.kafkatorio.task.ProcessRunningSpec
import kafkatorio.distributions.asConsumer
import kafkatorio.distributions.factorioModAttributes
import kafkatorio.extensions.not
import kafkatorio.tasks.ProcessRunningSpec
import org.gradle.kotlin.dsl.support.serviceOf
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
plugins {
dev.adamko.kafkatorio.infra.`process-runner`
id("kafkatorio.conventions.infra.process-runner")
}
description = "Start the Factorio game client"

View file

@ -1,10 +1,10 @@
import dev.adamko.kafkatorio.factoriomod.FactorioMod
import dev.adamko.kafkatorio.gradle.asConsumer
import dev.adamko.kafkatorio.gradle.factorioModAttributes
import kafkatorio.distributions.asConsumer
import kafkatorio.distributions.factorioModAttributes
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
plugins {
dev.adamko.kafkatorio.infra.`docker-compose`
id("kafkatorio.conventions.infra.docker-compose")
}

View file

@ -1,5 +1,5 @@
plugins {
dev.adamko.kafkatorio.infra.`docker-compose`
id("kafkatorio.conventions.infra.docker-compose")
}
description = "Kafka cluster"

View file

@ -1,7 +1,7 @@
import dev.adamko.kafkatorio.task.DockerComposeExec
import kafkatorio.tasks.DockerComposeExec
plugins {
dev.adamko.kafkatorio.infra.`docker-compose`
id("kafkatorio.conventions.infra.docker-compose")
}
description = "Send events from a Factorio server to a Kafka topic "

View file

@ -1,5 +1,5 @@
plugins {
dev.adamko.kafkatorio.lang.`kotlin-jvm`
id("kafkatorio.conventions.lang.kotlin-jvm")
}
dependencies {

View file

@ -1,11 +1,10 @@
import dev.adamko.kafkatorio.task.DockerEnvUpdateTask
import kafkatorio.tasks.DockerEnvUpdateTask
import org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig
plugins {
dev.adamko.kafkatorio.lang.`kotlin-js`
// dev.adamko.kafkatorio.lang.`kotlin-multiplatform`
id("kafkatorio.conventions.lang.kotlin-js")
id("io.kvision")
kotlin("plugin.serialization")
}
@ -35,9 +34,7 @@ kotlin {
),
"/kafkatorio/ws" to mapOf(
"target" to "ws://localhost:12080",
// "secure" to false,
"ws" to true,
// "changeOrigin" to true,
),
),
// static = mutableListOf("$buildDir/processedResources/frontend/main")
@ -53,15 +50,12 @@ kotlin {
}
}
}
// compilations["main"].packageJson {
// this.devDependencies["webpack-dev-server"] = "4.9.1"
// }
}
sourceSets {
all {
languageSettings.apply {
configureEach {
languageSettings {
optIn("kotlin.RequiresOptIn")
optIn("kotlinx.serialization.ExperimentalSerializationApi")
}
@ -93,18 +87,6 @@ kotlin {
kvision("kvision-redux")
kvision("kvision-state-flow")
kvision("kvision-routing-navigo-ng")
// implementation(devNpm("http-proxy-middleware", "^2.0.6"))
// implementation(dependencies.platform(devNpm("http-proxy-middleware", "^2.0.6")))
// implementation(dependencies.platform(npm("follow-redirects", "^1.14.8")))
// implementation(dependencies.platform(npm("nanoid", "^3.1.31")))
// implementation(dependencies.platform(npm("minimist", "^1.2.6")))
// implementation(dependencies.platform(npm("async", "^2.6.4")))
// implementation(dependencies.platform(npm("node-forge", "^1.3.0")))
// implementation(dependencies.platform(npm("socket.io", "^4.5.1")))
// implementation(dependencies.platform(devNpm("http-proxy-middleware", "^3.0.0-beta.0")))
// implementation(dependencies.platform(devNpm("webpack-dev-server", "4.9.1")))
}
resources.srcDir("src/main/web")
@ -133,21 +115,6 @@ fun KotlinDependencyHandler.kvision(
implementation("io.kvision:$module:${version.get()}", configure)
}
////// https://youtrack.jetbrains.com/issue/KT-42420
//afterEvaluate {
// yarn {
//// resolution("mocha", "9.2.2")
//// resolution("follow-redirects", "1.14.8")
//// resolution("nanoid", "3.1.31")
//// resolution("minimist", "1.2.6")
//// resolution("async", "2.6.4")
//// resolution("node-forge", "1.3.0")
//// resolution("socket.io", "^4.5.1")
//// resolution("http-proxy-middleware", "^3.0.0-beta.0")
// resolution("webpack-dev-server", "4.9.1")
// }
//}
val dockerEnvUpdate by tasks.registering(DockerEnvUpdateTask::class) {
dotEnvFile.set(layout.projectDirectory.file("docker/.env"))
@ -155,6 +122,7 @@ val dockerEnvUpdate by tasks.registering(DockerEnvUpdateTask::class) {
properties(
"COMPOSE_PROJECT_NAME" to rootProject.name,
"KAFKATORIO_VERSION" to project.version,
"REGISTRY_HOST" to "dcr.adamko.dev:5000",
)
}
tasks.assemble { dependsOn(dockerEnvUpdate) }
@ -178,11 +146,6 @@ tasks.matching { it.name == "processResources" }.configureEach {
}
tasks.withType<io.kvision.gradle.tasks.KVConvertPoTask>().configureEach {
enabled = false
}
val runWebMap by tasks.registering {
group = rootProject.name

View file

@ -12,6 +12,11 @@ includeBuild("./gradle-plugins/docker-compose/")
includeBuild("./gradle-plugins/factorio-mod-manager/")
plugins {
id("kafkatorio.convention.settings.repositories")
}
include(
":modules:events-library",
@ -46,7 +51,7 @@ include(
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
apply(from = "./buildSrc/repositories.settings.gradle.kts")
//apply(from = "./buildSrc/repositories.settings.gradle.kts")
@Suppress("UnstableApiUsage") // Central declaration of repositories is an incubating feature