| /* |
| * Copyright 2016-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. |
| */ |
| |
| // Configures publishing of Maven artifacts to Bintray |
| |
| apply plugin: 'maven' |
| apply plugin: 'maven-publish' |
| apply plugin: 'com.jfrog.bintray' |
| apply plugin: 'com.jfrog.artifactory' |
| apply plugin: "com.github.johnrengelman.shadow" |
| |
| apply from: project.rootProject.file('gradle/maven-central.gradle') |
| |
| def platform = platformOf(project) |
| def coroutines_core = platformLib("kotlinx-coroutines-core", platform) |
| |
| // ------------- tasks |
| |
| def isNative() { return project.name.endsWith("native") } |
| def bUser = project.hasProperty('bintrayUser') ? project.property('bintrayUser') : System.getenv('BINTRAY_USER') |
| def bKey = project.hasProperty('bintrayApiKey') ? project.property('bintrayApiKey') : System.getenv('BINTRAY_API_KEY') |
| |
| task sourcesJar(type: Jar) { |
| classifier = 'sources' |
| if (!isNative()) { |
| from sourceSets.main.allSource |
| } |
| |
| if (project.name == coroutines_core && platform != "common") { |
| // add common source, too |
| from rootProject.file("common/$project.name-common/src/main/kotlin") |
| } |
| } |
| |
| |
| publishing { |
| repositories { |
| maven { url = 'https://kotlin.bintray.com/kotlinx' } |
| } |
| |
| publications { |
| maven(MavenPublication) { publication -> |
| preparePublication(publication) |
| } |
| } |
| } |
| |
| artifactory { |
| contextUrl = 'https://oss.jfrog.org/artifactory' |
| publish { |
| repository { |
| repoKey = 'oss-snapshot-local' |
| username = bUser |
| password = bKey |
| } |
| |
| maven(MavenPublication) { publication -> |
| preparePublication(publication) |
| } |
| |
| defaults { |
| publications('maven') |
| } |
| } |
| } |
| |
| def preparePublication(MavenPublication publication) { |
| if (!isNative()) { |
| if (project.name == "kotlinx-coroutines-debug") { |
| project.shadow.component(publication) |
| } else { |
| publication.from components.java |
| } |
| publication.artifact javadocJar |
| publication.artifact sourcesJar |
| } |
| publication.pom.withXml(configureMavenCentralMetadata) |
| } |
| |
| task publishDevelopSnapshot() { |
| def branch = System.getenv('currentBranch') |
| if (branch == "develop") { |
| dependsOn(":artifactoryPublish") |
| } |
| } |
| |
| bintray { |
| user = bUser |
| key = bKey |
| override = true // for multi-platform Kotlin/Native publishing |
| publications = ['maven'] |
| pkg { |
| userOrg = 'kotlin' |
| repo = 'kotlinx' |
| name = 'kotlinx.coroutines' |
| version { |
| name = project.version |
| vcsTag = project.version |
| released = new Date() |
| } |
| } |
| } |
| |
| // TODO :kludge this is required for K/N publishing |
| bintrayUpload.dependsOn publishToMavenLocal |
| |
| // This is for easier debugging of bintray uploading problems |
| bintrayUpload.doFirst { |
| publications = project.publishing.publications.findAll { !it.name.contains('-test') }.collect { |
| println("Uploading artifact '$it.groupId:$it.artifactId:$it.version' from publication '$it.name'") |
| it |
| } |
| } |
| |
| // TODO :kludge this is required to disable publish of metadata for all but native |
| if (!isNative()) { |
| afterEvaluate { |
| publishing.publications.each { pub -> |
| pub.gradleModuleMetadataFile = null |
| tasks.matching { it.name == "generateMetadataFileFor${pub.name.capitalize()}Publication" }.all { |
| onlyIf { false } |
| } |
| } |
| } |
| } |