@file:OptIn(ExperimentalWasmDsl::class) import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl plugins { kotlin("multiplatform") version "2.0.21" `maven-publish` signing id("org.jetbrains.dokka") version "1.5.31" } group = "nl.astraeus" version = "1.0.10" repositories { mavenCentral() } kotlin { jvm() js(IR) { browser { /* testTask { // work around, browser test is broken atm enabled = false }*/ } } wasmJs { //moduleName = project.name browser() mavenPublication { groupId = group as String pom { name = "${project.name}-wasm-js" } } } sourceSets { val commonMain by getting val commonTest by getting { dependencies { implementation(kotlin("test")) } } val jvmTest by getting { dependencies { implementation(kotlin("test-junit")) } } val jsMain by getting val wasmJsMain by getting } } extra["PUBLISH_GROUP_ID"] = group extra["PUBLISH_VERSION"] = version extra["PUBLISH_ARTIFACT_ID"] = name // Stub secrets to let the project sync and build without the publication values set up val signingKeyId: String by project val signingPassword: String by project val signingSecretKeyRingFile: String by project val ossrhUsername: String by project val ossrhPassword: String by project extra["signing.keyId"] = signingKeyId extra["signing.password"] = signingPassword extra["signing.secretKeyRingFile"] = signingSecretKeyRingFile extra["ossrhUsername"] = ossrhUsername extra["ossrhPassword"] = ossrhPassword val javadocJar by tasks.registering(Jar::class) { archiveClassifier.set("javadoc") } publishing { repositories { maven { name = "releases" // change to point to your repo, e.g. http://my.org/repo setUrl("https://reposilite.astraeus.nl/releases") credentials { val reposiliteUsername: String? by project val reposilitePassword: String? by project username = reposiliteUsername password = reposilitePassword } } maven { name = "snapshots" // change to point to your repo, e.g. http://my.org/repo setUrl("https://reposilite.astraeus.nl/snapshots") credentials { val reposiliteUsername: String? by project val reposilitePassword: String? by project username = reposiliteUsername password = reposilitePassword } } maven { name = "sonatype" setUrl("https://s01.oss.sonatype.org/service/local/staging/deploy/maven2") credentials { username = ossrhUsername password = ossrhPassword } } maven { name = "gitea" setUrl("https://gitea.astraeus.nl/api/packages/rnentjes/maven") credentials() { val giteaUsername: kotlin.String? by project val giteaPassword: kotlin.String? by project username = giteaUsername password = giteaPassword } } } // Configure all publications publications.withType { // Stub javadoc.jar artifact artifact(javadocJar.get()) // Provide artifacts information requited by Maven Central pom { name.set("kotlin-css-generator") description.set("Kotlin css generator") url.set("https://github.com/rnentjes/kotlin-css-generator") licenses { license { name.set("MIT") url.set("https://opensource.org/licenses/MIT") } } developers { developer { id.set("rnentjes") name.set("Rien Nentjes") email.set("info@nentjes.com") } } scm { url.set("https://github.com/rnentjes/kotlin-css-generator") } } } } signing { sign(publishing.publications) } tasks.named("publishJsPublicationToMavenLocal") { dependsOn(tasks.named("signJvmPublication")) dependsOn(tasks.named("signKotlinMultiplatformPublication")) dependsOn(tasks.named("signWasmJsPublication")) } tasks.named("publishJvmPublicationToMavenLocal") { dependsOn(tasks.named("signJsPublication")) dependsOn(tasks.named("signKotlinMultiplatformPublication")) dependsOn(tasks.named("signWasmJsPublication")) } tasks.named("publishKotlinMultiplatformPublicationToMavenLocal") { dependsOn(tasks.named("signJvmPublication")) dependsOn(tasks.named("signJsPublication")) dependsOn(tasks.named("signWasmJsPublication")) } tasks.named("publishWasmJsPublicationToMavenLocal") { dependsOn(tasks.named("signKotlinMultiplatformPublication")) dependsOn(tasks.named("signJvmPublication")) dependsOn(tasks.named("signJsPublication")) dependsOn(tasks.named("signWasmJsPublication")) } tasks.named("publishJsPublicationToGiteaRepository") { dependsOn(tasks.named("signKotlinMultiplatformPublication")) dependsOn(tasks.named("signJvmPublication")) dependsOn(tasks.named("signJsPublication")) dependsOn(tasks.named("signWasmJsPublication")) } tasks.named("publishJvmPublicationToGiteaRepository") { dependsOn(tasks.named("signKotlinMultiplatformPublication")) dependsOn(tasks.named("signJvmPublication")) dependsOn(tasks.named("signJsPublication")) dependsOn(tasks.named("signWasmJsPublication")) } tasks.named("publishKotlinMultiplatformPublicationToGiteaRepository") { dependsOn(tasks.named("signKotlinMultiplatformPublication")) dependsOn(tasks.named("signJvmPublication")) dependsOn(tasks.named("signJsPublication")) dependsOn(tasks.named("signWasmJsPublication")) } tasks.named("publishWasmJsPublicationToGiteaRepository") { dependsOn(tasks.named("signKotlinMultiplatformPublication")) dependsOn(tasks.named("signJvmPublication")) dependsOn(tasks.named("signJsPublication")) dependsOn(tasks.named("signWasmJsPublication")) }