fix deploy for klibs (#153)

* fix deploy for klibs

- update gradle wrapper
- upgrade jreleaser to 1.19.0
- remove unused code in build.gradle

* remove unnecessary check for js

* exclude kotlinMultiplatform from publication overrides
This commit is contained in:
Pavel Gorgulov 2025-07-17 05:53:46 +02:00 • committed by GitHub
commit 058bba110f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 29 additions and 35 deletions

View file

@ -1,14 +1,9 @@
@file:OptIn(ExperimentalKotlinGradlePluginApi::class, ExperimentalWasmDsl::class)
@file:OptIn(ExperimentalWasmDsl::class)
import org.jetbrains.dokka.gradle.engine.parameters.VisibilityModifier
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
import org.jetbrains.kotlin.gradle.dsl.ExplicitApiMode
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMetadataTarget
import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
import org.jreleaser.model.Active
plugins {
@ -18,20 +13,18 @@ plugins {
alias(libs.plugins.dokka)
alias(libs.plugins.jreleaser)
`maven-publish`
signing
alias(libs.plugins.kotlinx.binary.compatibility.validator)
}
group = "io.modelcontextprotocol"
version = "0.6.0"
val mainSourcesJar = tasks.register<Jar>("mainSourcesJar") {
archiveClassifier = "sources"
from(kotlin.sourceSets.getByName("commonMain").kotlin)
val javadocJar by tasks.registering(Jar::class) {
archiveClassifier.set("javadoc")
}
publishing {
val javadocJar = configureEmptyJavadocArtifact()
publications.withType(MavenPublication::class).all {
if (name.contains("jvm", ignoreCase = true)) {
artifact(javadocJar)
@ -67,19 +60,29 @@ jreleaser {
maxRetries = 240
stagingRepository(layout.buildDirectory.dir("staging-deploy").get().asFile.path)
// workaround: https://github.com/jreleaser/jreleaser/issues/1784
kotlin.targets.forEach { target ->
if (target !is KotlinJvmTarget && target !is KotlinAndroidTarget && target !is KotlinMetadataTarget) {
val klibArtifactId = if (target.platformType == KotlinPlatformType.wasm) {
"${name}-wasm-${target.name.lowercase().substringAfter("wasm")}"
} else {
"${name}-${target.name.lowercase()}"
}
artifactOverride {
artifactId = klibArtifactId
jar = false
verifyPom = false
sourceJar = false
javadocJar = false
afterEvaluate {
publishing.publications.forEach { publication ->
if (publication is MavenPublication) {
val pubName = publication.name
if (!pubName.contains("jvm", ignoreCase = true)
&& !pubName.contains("metadata", ignoreCase = true)
&& !pubName.contains("kotlinMultiplatform", ignoreCase = true)
) {
artifactOverride {
artifactId = when {
pubName.contains("wasm", ignoreCase = true) ->
"${project.name}-wasm-${pubName.lowercase().substringAfter("wasm")}"
else -> "${project.name}-${pubName.lowercase()}"
}
jar = false
verifyPom = false
sourceJar = false
javadocJar = false
}
}
}
}
}
@ -133,15 +136,6 @@ fun MavenPom.configureMavenCentralMetadata() {
}
}
fun configureEmptyJavadocArtifact(): org.gradle.jvm.tasks.Jar {
val javadocJar by project.tasks.creating(Jar::class) {
archiveClassifier.set("javadoc")
// contents are deliberately left empty
// https://central.sonatype.org/publish/requirements/#supply-javadoc-and-sources
}
return javadocJar
}
fun MavenPublication.signPublicationIfKeyPresent() {
val keyId = project.getSensitiveProperty("SIGNING_KEY_ID")
val signingKey = project.getSensitiveProperty("SIGNING_KEY_PRIVATE")

View file

@ -11,7 +11,7 @@ coroutines = "1.10.2"
ktor = "3.2.1"
mockk = "1.14.4"
logging = "7.0.7"
jreleaser = "1.17.0"
jreleaser = "1.19.0"
binaryCompatibilityValidatorPlugin = "0.18.0"
slf4j = "2.0.17"
kotest = "5.9.1"

View file

@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME