From a3fa6c6d1369ba4226464b058243b8bed0016d97 Mon Sep 17 00:00:00 2001 From: Alexander Dudinsky Date: Wed, 17 Feb 2021 12:27:30 +0300 Subject: [PATCH] Publish artifacts needed for the kotlin-gradle-plugin in kotlin-ide repository --- build.gradle.kts | 6 ++ buildSrc/src/main/kotlin/tasks.kt | 83 +++++++++++-------- idea/idea-gradle/build.gradle.kts | 2 +- libraries/commonConfiguration.gradle | 4 +- .../build.gradle.kts | 2 +- 5 files changed, 57 insertions(+), 40 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 86d145a1f06..35cb043c57f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -948,6 +948,12 @@ tasks { } } + register("publishGradlePluginArtifacts") { + idePluginDependency { + dependsOnKotlinGradlePluginPublish() + } + } + register("publishIdeArtifacts") { idePluginDependency { dependsOn( diff --git a/buildSrc/src/main/kotlin/tasks.kt b/buildSrc/src/main/kotlin/tasks.kt index 51a47280ad4..4b2e483bf9a 100644 --- a/buildSrc/src/main/kotlin/tasks.kt +++ b/buildSrc/src/main/kotlin/tasks.kt @@ -20,42 +20,53 @@ import java.lang.Character.isUpperCase import java.nio.file.Files import java.nio.file.Path -fun Task.dependsOnKotlinPluginInstall() { - dependsOn( - ":kotlin-allopen:install", - ":kotlin-noarg:install", - ":kotlin-sam-with-receiver:install", - ":kotlin-android-extensions:install", - ":kotlin-parcelize-compiler:install", - ":kotlin-build-common:install", - ":kotlin-compiler-embeddable:install", - ":native:kotlin-native-utils:install", - ":kotlin-util-klib:install", - ":kotlin-util-io:install", - ":kotlin-compiler-runner:install", - ":kotlin-daemon-embeddable:install", - ":kotlin-daemon-client:install", - ":kotlin-gradle-plugin-api:install", - ":kotlin-gradle-plugin:install", - ":kotlin-gradle-plugin-model:install", - ":kotlin-reflect:install", - ":kotlin-annotation-processing-gradle:install", - ":kotlin-test:install", - ":kotlin-gradle-subplugin-example:install", - ":kotlin-stdlib-common:install", - ":kotlin-stdlib:install", - ":kotlin-stdlib-jdk8:install", - ":kotlin-stdlib-js:install", - ":examples:annotation-processor-example:install", - ":kotlin-script-runtime:install", - ":kotlin-scripting-common:install", - ":kotlin-scripting-jvm:install", - ":kotlin-scripting-compiler-embeddable:install", - ":kotlin-scripting-compiler-impl-embeddable:install", - ":kotlin-test-js-runner:install", - ":native:kotlin-klib-commonizer-embeddable:install", - ":native:kotlin-klib-commonizer-api:install" - ) +val kotlinGradlePluginAndItsRequired = arrayOf( + ":kotlin-allopen", + ":kotlin-noarg", + ":kotlin-sam-with-receiver", + ":kotlin-android-extensions", + ":kotlin-parcelize-compiler", + ":kotlin-build-common", + ":kotlin-compiler-embeddable", + ":native:kotlin-native-utils", + ":kotlin-util-klib", + ":kotlin-util-io", + ":kotlin-compiler-runner", + ":kotlin-daemon-embeddable", + ":kotlin-daemon-client", + ":kotlin-gradle-plugin-api", + ":kotlin-gradle-plugin", + ":kotlin-gradle-plugin-model", + ":kotlin-reflect", + ":kotlin-annotation-processing-gradle", + ":kotlin-test", + ":kotlin-gradle-subplugin-example", + ":kotlin-stdlib-common", + ":kotlin-stdlib", + ":kotlin-stdlib-jdk8", + ":kotlin-stdlib-js", + ":examples:annotation-processor-example", + ":kotlin-script-runtime", + ":kotlin-scripting-common", + ":kotlin-scripting-jvm", + ":kotlin-scripting-compiler-embeddable", + ":kotlin-scripting-compiler-impl-embeddable", + ":kotlin-test-js-runner", + ":native:kotlin-klib-commonizer-embeddable" +) + +fun Task.dependsOnKotlinGradlePluginInstall() { + kotlinGradlePluginAndItsRequired.forEach { + dependsOn("${it}:install") + } +} + +fun Task.dependsOnKotlinGradlePluginPublish() { + kotlinGradlePluginAndItsRequired.forEach { + project.rootProject.tasks.findByPath("${it}:publish")?.let { task -> + dependsOn(task) + } + } } fun Project.projectTest( diff --git a/idea/idea-gradle/build.gradle.kts b/idea/idea-gradle/build.gradle.kts index 2dbf4ee68aa..d85fd0aba37 100644 --- a/idea/idea-gradle/build.gradle.kts +++ b/idea/idea-gradle/build.gradle.kts @@ -99,7 +99,7 @@ testsJar() projectTest(parallel = false) { dependsOn(":dist") - dependsOnKotlinPluginInstall() + dependsOnKotlinGradlePluginInstall() if (!Ide.AS41.orHigher()) { systemProperty("android.studio.sdk.manager.disabled", "true") } diff --git a/libraries/commonConfiguration.gradle b/libraries/commonConfiguration.gradle index a5af870d911..fb226d640b2 100644 --- a/libraries/commonConfiguration.gradle +++ b/libraries/commonConfiguration.gradle @@ -112,8 +112,8 @@ task preparePublication { project.ext['signing.password'] = project.properties['kotlin.key.passphrase'] String sonatypeSnapshotsUrl = (isSonatypePublish && !isRelease) ? "https://oss.sonatype.org/content/repositories/snapshots/" : null - - ext.repoUrl = properties["deployRepoUrl"] ?: sonatypeSnapshotsUrl ?: properties["deploy-url"] ?: "file://${rootProject.buildDir}/repo".toString() + String repoFolder = properties["deployRepoFolder"] ?: "repo" + ext.repoUrl = properties["deployRepoUrl"] ?: sonatypeSnapshotsUrl ?: properties["deploy-url"] ?: "file://${rootProject.buildDir}/${repoFolder}".toString() ext.username = properties["deployRepoUsername"] ?: properties["kotlin.${repoProvider}.user"] ext.password = properties["deployRepoPassword"] ?: properties["kotlin.${repoProvider}.password"] diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts index 60c89d7c839..d1a94fb4fe6 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts @@ -157,7 +157,7 @@ tasks.withType { onlyIf { !project.hasProperty("noTest") } dependsOn(":kotlin-gradle-plugin:validateTaskProperties") - dependsOnKotlinPluginInstall() + dependsOnKotlinGradlePluginInstall() executable = "${rootProject.extra["JDK_18"]!!}/bin/java"