|
3 | 3 | */
|
4 | 4 |
|
5 | 5 | import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion
|
| 6 | +import util.kotlinVersionParsed |
6 | 7 | import util.libs
|
7 | 8 |
|
8 | 9 | plugins {
|
@@ -58,7 +59,57 @@ if (kotlinVersionFull != kotlinGPVersion) {
|
58 | 59 | error("KGP version mismatch. Project version: $kotlinVersionFull, KGP version: $kotlinGPVersion")
|
59 | 60 | }
|
60 | 61 |
|
| 62 | +val executeNpmLogin by tasks.registering { |
| 63 | + val registryUrl = "https://packages.jetbrains.team/npm/p/krpc/build-deps/" |
| 64 | + |
| 65 | + // To prevent leaking of credentials in VCS on dev machine use the build directory config file |
| 66 | + val buildYarnConfigFile = File(project.rootDir, "build/js/.yarnrc") |
| 67 | + val buildYarnYmlConfigFile = File(project.rootDir, "build/js/.yarnrc.yml") |
| 68 | + |
| 69 | + val spaceUsername: String? = getSpaceUsername() |
| 70 | + val spacePassword: String? = getSpacePassword() |
| 71 | + |
| 72 | + doLast { |
| 73 | + if (spaceUsername == null || spacePassword == null) { |
| 74 | + return@doLast |
| 75 | + } |
| 76 | + |
| 77 | + if (spacePassword.split(".").size != 3) { |
| 78 | + error("Unexpected Space Token format") |
| 79 | + } |
| 80 | + |
| 81 | + val outputYarnYmlText = """ |
| 82 | + npmRegistryServer: "$registryUrl" |
| 83 | + npmAlwaysAuth: true |
| 84 | + npmAuthToken: "$spacePassword" |
| 85 | + """.trimIndent() |
| 86 | + |
| 87 | + buildYarnConfigFile.createNewFile() |
| 88 | + buildYarnConfigFile.writeText("registry: $registryUrl") |
| 89 | + buildYarnYmlConfigFile.createNewFile() |
| 90 | + buildYarnYmlConfigFile.writeText(outputYarnYmlText) |
| 91 | + } |
| 92 | + |
| 93 | + outputs.file(buildYarnConfigFile).withPropertyName("buildOutputYarnFile") |
| 94 | + outputs.file(buildYarnYmlConfigFile).withPropertyName("buildOutputYarnYmlFile") |
| 95 | +} |
| 96 | + |
| 97 | +plugins.withType(org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin::class.java).configureEach { |
| 98 | + rootProject.extensions.configure(org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension::class.java) { |
| 99 | + download = true |
| 100 | + downloadBaseUrl = "https://packages.jetbrains.team/files/p/krpc/build-deps/" |
| 101 | + } |
| 102 | + |
| 103 | + tasks.named("kotlinNpmInstall").configure { |
| 104 | + dependsOn(executeNpmLogin) |
| 105 | + } |
| 106 | +} |
| 107 | + |
61 | 108 | // necessary for CI js tests
|
62 | 109 | rootProject.plugins.withType<org.jetbrains.kotlin.gradle.targets.js.yarn.YarnPlugin> {
|
63 |
| - rootProject.the<org.jetbrains.kotlin.gradle.targets.js.yarn.YarnRootExtension>().ignoreScripts = false |
| 110 | + rootProject.extensions.configure<org.jetbrains.kotlin.gradle.targets.js.yarn.YarnRootExtension> { |
| 111 | + ignoreScripts = false |
| 112 | + download = true |
| 113 | + downloadBaseUrl = "https://packages.jetbrains.team/files/p/krpc/build-deps/" |
| 114 | + } |
64 | 115 | }
|
0 commit comments