gradle config: try fixing config-cache miss with projectTokens

This commit is contained in:
Adam 2022-05-01 15:46:20 +02:00
parent fb265e39a6
commit 92e385fbe7
3 changed files with 30 additions and 28 deletions

View file

@ -1,4 +1,5 @@
import dev.adamko.kafkatorio.gradle.excludeGeneratedGradleDsl import dev.adamko.kafkatorio.gradle.excludeGeneratedGradleDsl
import java.time.LocalDate
plugins { plugins {
idea idea
@ -12,14 +13,14 @@ version = "0.4.0"
val licenseFile: RegularFile by extra(layout.projectDirectory.file("LICENSE")) val licenseFile: RegularFile by extra(layout.projectDirectory.file("LICENSE"))
val projectTokens: MutableMap<String, String> by extra( val projectTokens: MapProperty<String, String> by extra {
mutableMapOf( objects.mapProperty<String, String>().apply {
"project.version" to "$version", put("project.version", provider { "$version" })
"rootProject.name" to rootProject.name, put("rootProject.name", provider { rootProject.name })
"date.year" to "${java.time.LocalDate.now().year}", put("date.year", provider { "${LocalDate.now().year}" })
"author.email" to "adam@adamko.dev", put("author.email", "adam@adamko.dev")
) }
) }
idea { idea {
module { module {

View file

@ -18,24 +18,21 @@ description =
// Factorio required format is: // Factorio required format is:
// - filename: `mod-name_version.zip` // - filename: `mod-name_version.zip`
// - zip contains one directory, `mod-name` // - zip contains one directory, `mod-name`
val modName: String by extra("${rootProject.name}-events") val modName: String by extra { "${rootProject.name}-events" }
val distributionZipName: String by extra("${modName}_${project.version}.zip") val distributionZipName: String by extra { "${modName}_${project.version}.zip" }
// version of Factorio that the mod is compatible with (must only be "major.minor" - patch causes error) // version of Factorio that the mod is compatible with (must only be "major.minor" - patch causes error)
val modFactorioCompatibility: String by extra( val modFactorioCompatibility: Provider<String> =
libs.versions.factorio libs.versions.factorio.map { SemVer.parse(it).run { "$major.$minor" } }
.map { SemVer.parse(it).run { "$major.$minor" } }
.get()
)
val licenseFile: RegularFile by rootProject.extra val licenseFile: RegularFile by rootProject.extra
val projectTokens: MutableMap<String, String> by rootProject.extra val projectTokens: MapProperty<String, String> by rootProject.extra
projectTokens += mapOf( projectTokens.apply {
"mod.name" to modName, put("mod.name", modName)
"mod.title" to "Kafkatorio Events", put("mod.title", "Kafkatorio Events")
"mod.description" to (project.description ?: ""), put("mod.description", provider { project.description }.orElse(""))
"factorio.version" to modFactorioCompatibility, put("factorio.version", modFactorioCompatibility)
) }
val tsSrcDir: Directory = layout.projectDirectory.dir("src/main/typescript") val tsSrcDir: Directory = layout.projectDirectory.dir("src/main/typescript")
@ -95,8 +92,14 @@ val installEventsTsSchema by tasks.registering(Sync::class) {
tasks.distZip { tasks.distZip {
archiveFileName.set(provider { distributionZipName }) val zipName = distributionZipName
val zipNameProvider = provider { zipName }
val projectTokens = projectTokens
inputs.property("distributionZipName", distributionZipName)
inputs.property("zipNameProvider", zipNameProvider)
inputs.property("projectTokens", projectTokens)
archiveFileName.set(zipNameProvider)
} }
@ -112,7 +115,7 @@ distributions {
from(licenseFile) from(licenseFile)
from(typescriptToLua.map { it.outputDirectory }) from(typescriptToLua.map { it.outputDirectory })
filesNotMatching("**/*.png") { filesNotMatching("**/*.png") {
filter<ReplaceTokens>("tokens" to projectTokens) filter<ReplaceTokens>("tokens" to projectTokens.get())
} }
includeEmptyDirs = false includeEmptyDirs = false
exclude { exclude {

View file

@ -1,4 +1,4 @@
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs import dev.adamko.kafkatorio.task.DockerComposeExec
plugins { plugins {
dev.adamko.kafkatorio.infra.`docker-compose` dev.adamko.kafkatorio.infra.`docker-compose`
@ -14,9 +14,7 @@ tasks.dockerUp {
} }
val dockerBuildKafkaPipe by tasks.registering(DockerComposeExec::class) {
@Suppress("UnstableApiUsage") // normalizeLineEndings is incubating
val dockerBuildKafkaPipe by tasks.registering(dev.adamko.kafkatorio.task.DockerComposeExec::class) {
dependsOn(tasks.dockerEnv) dependsOn(tasks.dockerEnv)
dockerComposeDir.set(dockerSrcDir) dockerComposeDir.set(dockerSrcDir)