From 78e57c6d9c6b5f5977209b0689d4284d309753ed Mon Sep 17 00:00:00 2001 From: Nelson Osacky Date: Sat, 30 Aug 2025 20:56:26 +0200 Subject: [PATCH] fix(gradle): make flankAuth task compatible with configuration cache MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Use projectLayout.buildDirectory instead of project.layout.buildDirectory in FlankJavaExec - Update flankAuth task registration to use configuration cache compatible approach - Restore directory creation in configuration cache compatible way - Update ConfigurationCacheTest to verify the new behavior Fixes #381 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .../flank/gradle/FladlePluginDelegate.kt | 6 +++-- .../com/osacky/flank/gradle/FlankJavaExec.kt | 4 ++-- .../integration/ConfigurationCacheTest.kt | 24 +++++++++++++++++++ 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/fladle-plugin/src/main/java/com/osacky/flank/gradle/FladlePluginDelegate.kt b/fladle-plugin/src/main/java/com/osacky/flank/gradle/FladlePluginDelegate.kt index ea878e0f..aa6dccd8 100644 --- a/fladle-plugin/src/main/java/com/osacky/flank/gradle/FladlePluginDelegate.kt +++ b/fladle-plugin/src/main/java/com/osacky/flank/gradle/FladlePluginDelegate.kt @@ -23,10 +23,12 @@ class FladlePluginDelegate { val extension = target.extensions.create("fladle", target.objects) target.tasks.register("flankAuth", FlankJavaExec::class.java) { + val fladleConfig = target.configurations.getByName(FLADLE_CONFIG) + val fladleDir = target.layout.buildDirectory.dir("fladle") doFirst { - target.layout.fladleDir.get().asFile.mkdirs() + fladleDir.get().asFile.mkdirs() } - classpath = project.fladleConfig + classpath = fladleConfig args = listOf("auth", "login") } diff --git a/fladle-plugin/src/main/java/com/osacky/flank/gradle/FlankJavaExec.kt b/fladle-plugin/src/main/java/com/osacky/flank/gradle/FlankJavaExec.kt index f10ef850..5148f1aa 100644 --- a/fladle-plugin/src/main/java/com/osacky/flank/gradle/FlankJavaExec.kt +++ b/fladle-plugin/src/main/java/com/osacky/flank/gradle/FlankJavaExec.kt @@ -10,12 +10,12 @@ import javax.inject.Inject ) open class FlankJavaExec @Inject - constructor(projectLayout: ProjectLayout) : JavaExec() { + constructor(private val projectLayout: ProjectLayout) : JavaExec() { init { group = FladlePluginDelegate.TASK_GROUP mainClass.set("ftl.Main") workingDir(projectLayout.fladleDir) } - fun setUpWorkingDir(configName: String) = workingDir(project.layout.buildDirectory.dir("fladle/$configName")) + fun setUpWorkingDir(configName: String) = workingDir(projectLayout.buildDirectory.dir("fladle/$configName")) } diff --git a/fladle-plugin/src/test/java/com/osacky/flank/gradle/integration/ConfigurationCacheTest.kt b/fladle-plugin/src/test/java/com/osacky/flank/gradle/integration/ConfigurationCacheTest.kt index 2f9b5582..67ffb66c 100644 --- a/fladle-plugin/src/test/java/com/osacky/flank/gradle/integration/ConfigurationCacheTest.kt +++ b/fladle-plugin/src/test/java/com/osacky/flank/gradle/integration/ConfigurationCacheTest.kt @@ -90,6 +90,30 @@ class ConfigurationCacheTest { assertThat(secondResult.output).contains("Reusing configuration cache.") } + @Test + fun flankAuth() { + writeBuildGradle( + """|plugins { + | id "com.osacky.fladle" + |} + | + |repositories { + | mavenCentral() + |} + | + """.trimMargin(), + ) + val result = configCachingRunner("flankAuth").buildAndFail() + + assertThat(result.output).contains("Address already in use") + assertThat(result.output).contains("Configuration cache entry stored.") + + val secondResult = configCachingRunner("flankAuth").buildAndFail() + + assertThat(secondResult.output).contains("Address already in use") + assertThat(secondResult.output).contains("Reusing configuration cache.") + } + @Test fun runFlank() { writeBuildGradle(