From eda759ba313d0165a7a9205d1c29e59c89e3377b Mon Sep 17 00:00:00 2001 From: Alexander Likhachev Date: Mon, 11 Apr 2022 22:24:54 +0300 Subject: [PATCH] [Build] Avoid buildscript root capture into task action #KT-44611 In Progress --- build.gradle.kts | 7 +++++-- .../build.gradle.kts | 3 ++- .../kotlin-gradle-plugin-idea/build.gradle.kts | 6 ++++-- .../parcelize/parcelize-compiler/build.gradle.kts | 14 ++++++++------ 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index d7c5a45da0a..fae9132f364 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -652,9 +652,12 @@ val syncMutedTests = tasks.register("syncMutedTests") { } tasks.register("createIdeaHomeForTests") { - outputs.file(ideaBuildNumberFileForTests()) + val ideaBuildNumberFileForTests = ideaBuildNumberFileForTests() + val intellijSdkVersion = rootProject.extra["versions.intellijSdk"] + outputs.file(ideaBuildNumberFileForTests) doFirst { - writeIdeaBuildNumberForTests() + ideaBuildNumberFileForTests.parentFile.mkdirs() + ideaBuildNumberFileForTests.writeText("IC-$intellijSdkVersion") } } diff --git a/libraries/tools/kotlin-gradle-plugin-idea-for-compatibility-tests/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-idea-for-compatibility-tests/build.gradle.kts index 0cbcd019413..e0f3e2051fd 100644 --- a/libraries/tools/kotlin-gradle-plugin-idea-for-compatibility-tests/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-idea-for-compatibility-tests/build.gradle.kts @@ -25,9 +25,10 @@ val syncClasspath by tasks.register("syncClasspath") { from(incomingClasspath) into(classpathDestination) + val testedVersionLocal = testedVersion /* Test if the correct version was resolved */ doLast { - val expectedJar = destinationDir.resolve("kotlin-gradle-plugin-idea-$testedVersion.jar") + val expectedJar = destinationDir.resolve("kotlin-gradle-plugin-idea-$testedVersionLocal.jar") check(expectedJar.exists()) { "Expected $expectedJar in classpath. Found ${destinationDir.listFiles().orEmpty()}" } } } diff --git a/libraries/tools/kotlin-gradle-plugin-idea/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-idea/build.gradle.kts index b4bbea23001..2a671a63fc0 100644 --- a/libraries/tools/kotlin-gradle-plugin-idea/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-idea/build.gradle.kts @@ -47,8 +47,10 @@ run { tasks.test { dependsOnKotlinGradlePluginInstall() - inputs.files(compatibilityTestClasspath) - doFirst { systemProperty("compatibilityTestClasspath", compatibilityTestClasspath.files.joinToString(";") { it.absolutePath }) } + dependsOn(compatibilityTestClasspath) + val conf: FileCollection = compatibilityTestClasspath + inputs.files(conf) + doFirst { systemProperty("compatibilityTestClasspath", conf.files.joinToString(";") { it.absolutePath }) } } } diff --git a/plugins/parcelize/parcelize-compiler/build.gradle.kts b/plugins/parcelize/parcelize-compiler/build.gradle.kts index be3f019d47d..d89543eee9d 100644 --- a/plugins/parcelize/parcelize-compiler/build.gradle.kts +++ b/plugins/parcelize/parcelize-compiler/build.gradle.kts @@ -95,13 +95,15 @@ projectTest(jUnitMode = JUnitMode.JUnit5) { workingDir = rootDir useAndroidJar() - val parcelizeRuntimeForTestsProvider = project.provider { parcelizeRuntimeForTests.asPath } - val robolectricClasspathProvider = project.provider { robolectricClasspath.asPath } + val parcelizeRuntimeForTestsConf: FileCollection = parcelizeRuntimeForTests + val robolectricClasspathConf: FileCollection = robolectricClasspath + val layoutLibConf: FileCollection = layoutLib + val layoutLibApiConf: FileCollection = layoutLibApi doFirst { - systemProperty("parcelizeRuntime.classpath", parcelizeRuntimeForTestsProvider.get()) - systemProperty("robolectric.classpath", robolectricClasspathProvider.get()) - systemProperty("layoutLib.path", layoutLib.singleFile.canonicalPath) - systemProperty("layoutLibApi.path", layoutLibApi.singleFile.canonicalPath) + systemProperty("parcelizeRuntime.classpath", parcelizeRuntimeForTestsConf.asPath) + systemProperty("robolectric.classpath", robolectricClasspathConf.asPath) + systemProperty("layoutLib.path", layoutLibConf.singleFile.canonicalPath) + systemProperty("layoutLibApi.path", layoutLibApiConf.singleFile.canonicalPath) } doLast { println(filter)