From bdc87edfd035b7e6cb2c38d2e6124702e2d8496d Mon Sep 17 00:00:00 2001 From: Vasily Levchenko Date: Wed, 13 Jan 2021 14:38:27 +0100 Subject: [PATCH] [build] cache repository fix --- buildSrc/build.gradle.kts | 2 -- gradle/cacheRedirector.gradle.kts | 3 +- .../backend.native/tests/build.gradle | 10 +++--- .../main/kotlin/org/jetbrains/kotlin/Utils.kt | 10 ++++++ kotlin-native/build.gradle | 31 +++++++++++-------- kotlin-native/endorsedLibraries/build.gradle | 7 +++-- .../kotlinx.cli/build.gradle | 16 +++++----- .../gradle/kotlinGradlePlugin.gradle | 10 +++--- kotlin-native/platformLibs/build.gradle | 13 ++++---- 9 files changed, 61 insertions(+), 41 deletions(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 64b327da56f..45ec8970795 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -30,8 +30,6 @@ buildscript { } } -val cacheRedirectorEnabled = findProperty("cacheRedirectorEnabled")?.toString()?.toBoolean() == true - logger.info("buildSrcKotlinVersion: " + extra["bootstrapKotlinVersion"]) logger.info("buildSrc kotlin compiler version: " + org.jetbrains.kotlin.config.KotlinCompilerVersion.VERSION) logger.info("buildSrc stdlib version: " + KotlinVersion.CURRENT) diff --git a/gradle/cacheRedirector.gradle.kts b/gradle/cacheRedirector.gradle.kts index 4f968d6c225..aa018444cd1 100644 --- a/gradle/cacheRedirector.gradle.kts +++ b/gradle/cacheRedirector.gradle.kts @@ -77,7 +77,8 @@ val mirroredUrls = listOf( "https://www.python.org/ftp", "https://www.jetbrains.com/intellij-repository/nightly", "https://www.jetbrains.com/intellij-repository/releases", - "https://www.jetbrains.com/intellij-repository/snapshots" + "https://www.jetbrains.com/intellij-repository/snapshots", + "https://kotlin.bintray.com/kotlinx" ) val aliases = mapOf( diff --git a/kotlin-native/backend.native/tests/build.gradle b/kotlin-native/backend.native/tests/build.gradle index 9de85c7e758..5a13f6aea2e 100644 --- a/kotlin-native/backend.native/tests/build.gradle +++ b/kotlin-native/backend.native/tests/build.gradle @@ -7,6 +7,7 @@ import org.jetbrains.kotlin.gradle.plugin.tasks.KonanCompileNativeBinary import org.jetbrains.kotlin.* import org.jetbrains.kotlin.konan.target.Family import org.jetbrains.kotlin.konan.target.KonanTarget +import org.jetbrains.kotlin.UtilsKt import java.nio.file.Paths @@ -14,11 +15,12 @@ import static org.jetbrains.kotlin.konan.target.Architecture.* buildscript { repositories { + if (UtilsKt.getCacheRedirectorEnabled(project)) + maven { url 'https://cache-redirector.jetbrains.com/maven-central'} + else + mavenCentral() + maven { - url 'https://cache-redirector.jetbrains.com/maven-central' - } - mavenCentral() - maven { url project.bootstrapKotlinRepo } } diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/Utils.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/Utils.kt index 882430430d8..14b2ebfbe6f 100644 --- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/Utils.kt +++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/Utils.kt @@ -52,6 +52,7 @@ import org.gradle.nativeplatform.toolchain.internal.tools.GccCommandLineToolConf import org.gradle.nativeplatform.toolchain.internal.tools.ToolSearchPath import org.gradle.process.internal.ExecActionFactory import java.io.ByteArrayOutputStream +import java.net.URI //region Project properties. @@ -82,6 +83,15 @@ val Project.testOutputFramework val Project.testOutputExternal get() = (findProperty("testOutputExternal") as File).toString() +val Project.cacheRedirectorEnabled + get() = findProperty("cacheRedirectorEnabled")?.toString()?.toBoolean() ?: false + +fun Project.redirectIfEnabled(url: String):String = if (cacheRedirectorEnabled) { + val base = URL(url) + "https://cache-redirector.jetbrains.com/${base.host}/${base.path}" +} else + url + val validPropertiesNames = listOf("kotlin.native.home", "org.jetbrains.kotlin.native.home", "konan.home") diff --git a/kotlin-native/build.gradle b/kotlin-native/build.gradle index 3d0ff70297a..975fffaf2f5 100644 --- a/kotlin-native/build.gradle +++ b/kotlin-native/build.gradle @@ -33,11 +33,16 @@ buildscript { apply from: "gradle/kotlinGradlePlugin.gradle" repositories { - maven { url "https://kotlin.bintray.com/kotlinx" } - maven { url "https://cache-redirector.jetbrains.com/maven-central" } - mavenCentral() - maven { url "https://cache-redirector.jetbrains.com/jcenter" } - jcenter() + if (UtilsKt.getCacheRedirectorEnabled(project)) { + maven { url "https://cache-redirector.jetbrains.com/dl.kotlin.bintray.com/kotlinx" } + maven { url "https://cache-redirector.jetbrains.com/maven-central" } + maven { url "https://cache-redirector.jetbrains.com/jcenter" } + } + else { + maven { url "https://kotlin.bintray.com/kotlinx" } + mavenCentral() + jcenter() + } } dependencies { @@ -97,10 +102,10 @@ ext { allprojects { buildscript { repositories { - maven { - url 'https://cache-redirector.jetbrains.com/jcenter' - } - jcenter() + if (UtilsKt.getCacheRedirectorEnabled(project)) + maven { url 'https://cache-redirector.jetbrains.com/jcenter' } + else + jcenter() } } if (path != ":kotlin-native:dependencies") { @@ -108,10 +113,10 @@ allprojects { } repositories { - maven { - url 'https://cache-redirector.jetbrains.com/maven-central' - } - mavenCentral() + if (UtilsKt.getCacheRedirectorEnabled(project)) + maven { url 'https://cache-redirector.jetbrains.com/maven-central' } + else + mavenCentral() maven { url project.bootstrapKotlinRepo } diff --git a/kotlin-native/endorsedLibraries/build.gradle b/kotlin-native/endorsedLibraries/build.gradle index ca73717134d..c6e7ef24f8f 100644 --- a/kotlin-native/endorsedLibraries/build.gradle +++ b/kotlin-native/endorsedLibraries/build.gradle @@ -1,11 +1,14 @@ import org.jetbrains.kotlin.UtilsKt import org.jetbrains.kotlin.gradle.plugin.konan.tasks.KonanCacheTask import org.jetbrains.kotlin.EndorsedLibraryInfo +import org.jetbrains.kotlin.UtilsKt buildscript { repositories { - maven { url 'https://cache-redirector.jetbrains.com/jcenter' } - jcenter() + if (UtilsKt.getCacheRedirectorEnabled(project)) + maven { url 'https://cache-redirector.jetbrains.com/jcenter' } + else + jcenter() } } diff --git a/kotlin-native/endorsedLibraries/kotlinx.cli/build.gradle b/kotlin-native/endorsedLibraries/kotlinx.cli/build.gradle index 34e6d6ca03c..0fc7b7fc59d 100644 --- a/kotlin-native/endorsedLibraries/kotlinx.cli/build.gradle +++ b/kotlin-native/endorsedLibraries/kotlinx.cli/build.gradle @@ -4,10 +4,10 @@ import org.jetbrains.kotlin.* buildscript { repositories { - maven { - url 'https://cache-redirector.jetbrains.com/jcenter' - } - jcenter() + if (UtilsKt.getCacheRedirectorEnabled(project)) + maven { url 'https://cache-redirector.jetbrains.com/jcenter' } + else + jcenter() maven { url project.bootstrapKotlinRepo } @@ -18,10 +18,10 @@ buildscript { apply plugin: 'kotlin-multiplatform' repositories { - maven { - url 'https://cache-redirector.jetbrains.com/jcenter' - } - jcenter() + if (UtilsKt.getCacheRedirectorEnabled(project)) + maven { url 'https://cache-redirector.jetbrains.com/jcenter' } + else + jcenter() } kotlin { diff --git a/kotlin-native/gradle/kotlinGradlePlugin.gradle b/kotlin-native/gradle/kotlinGradlePlugin.gradle index faa11cb6681..e2b6f87b199 100644 --- a/kotlin-native/gradle/kotlinGradlePlugin.gradle +++ b/kotlin-native/gradle/kotlinGradlePlugin.gradle @@ -1,11 +1,13 @@ +import org.jetbrains.kotlin.UtilsKt + project.buildscript.repositories { maven { url project.bootstrapKotlinRepo } - maven { - url 'https://cache-redirector.jetbrains.com/maven-central' - } - mavenCentral() + if (UtilsKt.getCacheRedirectorEnabled(project)) + maven { url 'https://cache-redirector.jetbrains.com/maven-central' } + else + mavenCentral() } project.buildscript.dependencies { diff --git a/kotlin-native/platformLibs/build.gradle b/kotlin-native/platformLibs/build.gradle index f62bdd47eef..31f519ac95e 100644 --- a/kotlin-native/platformLibs/build.gradle +++ b/kotlin-native/platformLibs/build.gradle @@ -2,21 +2,20 @@ import org.jetbrains.kotlin.gradle.plugin.konan.tasks.KonanCacheTask import org.jetbrains.kotlin.KlibInstall import org.jetbrains.kotlin.konan.target.* import org.jetbrains.kotlin.konan.util.* +import org.jetbrains.kotlin.UtilsKt import static org.jetbrains.kotlin.konan.util.VisibleNamedKt.getVisibleName buildscript { repositories { - maven { - url 'https://cache-redirector.jetbrains.com/maven-central' - } - mavenCentral() + if (UtilsKt.getCacheRedirectorEnabled(project)) + maven { url 'https://cache-redirector.jetbrains.com/maven-central'} + else + mavenCentral() maven { url project.bootstrapKotlinRepo } - maven { - url "https://kotlin.bintray.com/kotlinx" - } + maven { url UtilsKt.redirectIfEnabled(project, "https://kotlin.bintray.com/kotlinx") } } } // These properties are used by the 'konan' plugin, thus we set them before applying it.