From 128b70e2c4611900ec902b2dfe9c5dd87b3c5a36 Mon Sep 17 00:00:00 2001 From: Vyacheslav Gerasimov Date: Thu, 14 Mar 2019 15:40:31 +0300 Subject: [PATCH] Build: Add property to enable dependency task output verification Enabled on teamcity by default, disabled locally by default, kotlin.build.dependency.output.verification may be used to specify explicitly --- buildSrc/build.gradle.kts | 1 + buildSrc/prepare-deps/build.gradle.kts | 19 ++++++++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index f67218282ca..df8376c2d12 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -65,6 +65,7 @@ rootProject.apply { val isTeamcityBuild = project.hasProperty("teamcity") || System.getenv("TEAMCITY_VERSION") != null val intellijUltimateEnabled by extra(project.getBooleanProperty("intellijUltimateEnabled") ?: isTeamcityBuild) val intellijSeparateSdks by extra(project.getBooleanProperty("intellijSeparateSdks") ?: false) +val verifyDependencyOutput by extra( getBooleanProperty("kotlin.build.dependency.output.verification") ?: isTeamcityBuild) extra["intellijReleaseType"] = if (extra["versions.intellijSdk"]?.toString()?.endsWith("SNAPSHOT") == true) "snapshots" diff --git a/buildSrc/prepare-deps/build.gradle.kts b/buildSrc/prepare-deps/build.gradle.kts index 8418246b7da..4a0cfc2f3bd 100644 --- a/buildSrc/prepare-deps/build.gradle.kts +++ b/buildSrc/prepare-deps/build.gradle.kts @@ -7,7 +7,7 @@ import org.gradle.api.publish.ivy.internal.publisher.IvyDescriptorFileGenerator import org.gradle.internal.os.OperatingSystem val cacheRedirectorEnabled = findProperty("cacheRedirectorEnabled")?.toString()?.toBoolean() == true - +val verifyDependencyOutput: Boolean by rootProject.extra val intellijUltimateEnabled: Boolean by rootProject.extra val intellijReleaseType: String by rootProject.extra val intellijVersion = rootProject.extra["versions.intellijSdk"] as String @@ -28,12 +28,11 @@ if (intellijVersionDelimiterIndex == -1) { val platformBaseVersion = intellijVersion.substring(0, intellijVersionDelimiterIndex) +logger.info("verifyDependencyOutput: $verifyDependencyOutput") logger.info("intellijUltimateEnabled: $intellijUltimateEnabled") - logger.info("intellijVersion: $intellijVersion") logger.info("androidStudioRelease: $androidStudioRelease") logger.info("androidStudioBuild: $androidStudioBuild") - logger.info("intellijSeparateSdks: $intellijSeparateSdks") logger.info("installIntellijCommunity: $installIntellijCommunity") logger.info("installIntellijUltimate: $installIntellijUltimate") @@ -298,10 +297,16 @@ fun buildIvyRepositoryTask( dependsOn(configuration) inputs.files(configuration) - outputs.upToDateWhen { - configuration.resolvedConfiguration.resolvedArtifacts.single() - .let { it.moduleDirectory() } - .exists() + if (verifyDependencyOutput) { + outputs.dir(provider { + configuration.resolvedConfiguration.resolvedArtifacts.single().moduleDirectory() + }) + } else { + outputs.upToDateWhen { + configuration.resolvedConfiguration.resolvedArtifacts.single() + .moduleDirectory() + .exists() + } } doFirst {