You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.7 KiB
57 lines
1.7 KiB
/*
|
|
* Copyright 2016-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
|
|
*/
|
|
|
|
def prop(name, defVal) {
|
|
def value = project.properties[name]
|
|
if (value == null) return defVal
|
|
return value
|
|
}
|
|
|
|
def distTag(version) {
|
|
def i = version.indexOf('-')
|
|
if (i > 0) return version.substring(i + 1)
|
|
return "latest"
|
|
}
|
|
|
|
def npmTemplateDir = file("$projectDir/npm")
|
|
def npmDeployDir = file("$buildDir/npm")
|
|
|
|
def authToken = prop("kotlin.npmjs.auth.token", "")
|
|
def dryRun = prop("dryRun", "false")
|
|
|
|
def jsLegacy = kotlin.targets.hasProperty("jsLegacy")
|
|
? kotlin.targets.jsLegacy
|
|
: kotlin.targets.js
|
|
|
|
// Note: publish transformed files using dependency on sourceSets.main.output
|
|
task preparePublishNpm(type: Copy) {
|
|
from(npmTemplateDir) {
|
|
// Postpone expansion of package.json until we configure version property in build.gradle
|
|
def copySpec = it
|
|
afterEvaluate {
|
|
copySpec.expand(project.properties + [kotlinDependency: "\"kotlin\": \"$kotlin_version\""])
|
|
}
|
|
}
|
|
// we must publish output that is transformed by atomicfu
|
|
from(jsLegacy.compilations.main.output.allOutputs)
|
|
into npmDeployDir
|
|
}
|
|
|
|
task publishNpm(type: NpmTask, dependsOn: [preparePublishNpm]) {
|
|
workingDir = npmDeployDir
|
|
|
|
doFirst {
|
|
def npmDeployTag = distTag(version)
|
|
def deployArgs = ['publish',
|
|
"--//registry.npmjs.org/:_authToken=$authToken",
|
|
"--tag=$npmDeployTag"]
|
|
if (dryRun == "true") {
|
|
println("$npmDeployDir \$ npm arguments: $deployArgs")
|
|
args = ['pack']
|
|
} else {
|
|
args = deployArgs
|
|
}
|
|
}
|
|
}
|