From a2e2f48d5379598a99b5d52dbf1ff91e82912964 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Sat, 4 Oct 2025 23:09:08 +0600 Subject: [PATCH] add publication via nmcp --- build.gradle | 14 ++++++++ publish.gradle | 88 +++++++++++++++++++++++--------------------------- 2 files changed, 55 insertions(+), 47 deletions(-) diff --git a/build.gradle b/build.gradle index dba7e6d..31e8b58 100644 --- a/build.gradle +++ b/build.gradle @@ -14,6 +14,7 @@ buildscript { plugins { alias(libs.plugins.multiplatform) alias(libs.plugins.serialization) + alias(libs.plugins.nmcp.aggregation) } project.version = "$library_version" @@ -78,6 +79,19 @@ kotlin { } } +if ((project.hasProperty('SONATYPE_USER') || System.getenv('SONATYPE_USER') != null) && (project.hasProperty('SONATYPE_PASSWORD') || System.getenv('SONATYPE_PASSWORD') != null)) { + nmcpAggregation { + centralPortal { + username = project.hasProperty('SONATYPE_USER') ? project.property('SONATYPE_USER') : System.getenv('SONATYPE_USER') + password = project.hasProperty('SONATYPE_PASSWORD') ? project.property('SONATYPE_PASSWORD') : System.getenv('SONATYPE_PASSWORD') + validationTimeout = Duration.ofHours(4) + publishingType = System.getenv('PUBLISHING_TYPE') != "" ? System.getenv('PUBLISHING_TYPE') : "USER_MANAGED" + } + + publishAllProjectsProbablyBreakingProjectIsolation() + } +} + java { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 diff --git a/publish.gradle b/publish.gradle index 810360b..9dbfe3a 100644 --- a/publish.gradle +++ b/publish.gradle @@ -1,3 +1,4 @@ + apply plugin: 'maven-publish' task javadocsJar(type: Jar) { @@ -19,59 +20,52 @@ publishing { } developers { - - developer { - id = "InsanusMokrassar" - name = "Ovsyannikov Alexey" - email = "ovsyannikov.alexey95@gmail.com" - } - + developer { + id = "InsanusMokrassar" + name = "Ovsyannikov Alexey" + email = "ovsyannikov.alexey95@gmail.com" + } } licenses { - - license { - name = "Apache Software License 2.0" - url = "https://github.com/InsanusMokrassar/SauceNaoAPI/blob/master/LICENSE" - } - + license { + name = "Apache Software License 2.0" + url = "https://github.com/InsanusMokrassar/SauceNaoAPI/blob/master/LICENSE" + } } } - repositories { - if ((project.hasProperty('GITHUBPACKAGES_USER') || System.getenv('GITHUBPACKAGES_USER') != null) && (project.hasProperty('GITHUBPACKAGES_PASSWORD') || System.getenv('GITHUBPACKAGES_PASSWORD') != null)) { - maven { - name = "GithubPackages" - url = uri("https://maven.pkg.github.com/InsanusMokrassar/SauceNaoAPI") - - credentials { - username = project.hasProperty('GITHUBPACKAGES_USER') ? project.property('GITHUBPACKAGES_USER') : System.getenv('GITHUBPACKAGES_USER') - password = project.hasProperty('GITHUBPACKAGES_PASSWORD') ? project.property('GITHUBPACKAGES_PASSWORD') : System.getenv('GITHUBPACKAGES_PASSWORD') - } - + } + repositories { + if ((project.hasProperty('GITHUBPACKAGES_USER') || System.getenv('GITHUBPACKAGES_USER') != null) && (project.hasProperty('GITHUBPACKAGES_PASSWORD') || System.getenv('GITHUBPACKAGES_PASSWORD') != null)) { + maven { + name = "GithubPackages" + url = uri("https://maven.pkg.github.com/InsanusMokrassar/SauceNaoAPI") + + credentials { + username = project.hasProperty('GITHUBPACKAGES_USER') ? project.property('GITHUBPACKAGES_USER') : System.getenv('GITHUBPACKAGES_USER') + password = project.hasProperty('GITHUBPACKAGES_PASSWORD') ? project.property('GITHUBPACKAGES_PASSWORD') : System.getenv('GITHUBPACKAGES_PASSWORD') } } - if ((project.hasProperty('INMONEXUS_USER') || System.getenv('INMONEXUS_USER') != null) && (project.hasProperty('INMONEXUS_PASSWORD') || System.getenv('INMONEXUS_PASSWORD') != null)) { - maven { - name = "InmoNexus" - url = uri("https://nexus.inmo.dev/repository/maven-releases/") - - credentials { - username = project.hasProperty('INMONEXUS_USER') ? project.property('INMONEXUS_USER') : System.getenv('INMONEXUS_USER') - password = project.hasProperty('INMONEXUS_PASSWORD') ? project.property('INMONEXUS_PASSWORD') : System.getenv('INMONEXUS_PASSWORD') - } - + } + if ((project.hasProperty('INMONEXUS_USER') || System.getenv('INMONEXUS_USER') != null) && (project.hasProperty('INMONEXUS_PASSWORD') || System.getenv('INMONEXUS_PASSWORD') != null)) { + maven { + name = "InmoNexus" + url = uri("https://nexus.inmo.dev/repository/maven-releases/") + + credentials { + username = project.hasProperty('INMONEXUS_USER') ? project.property('INMONEXUS_USER') : System.getenv('INMONEXUS_USER') + password = project.hasProperty('INMONEXUS_PASSWORD') ? project.property('INMONEXUS_PASSWORD') : System.getenv('INMONEXUS_PASSWORD') } } - if ((project.hasProperty('SONATYPE_USER') || System.getenv('SONATYPE_USER') != null) && (project.hasProperty('SONATYPE_PASSWORD') || System.getenv('SONATYPE_PASSWORD') != null)) { - maven { - name = "sonatype" - url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/") - - credentials { - username = project.hasProperty('SONATYPE_USER') ? project.property('SONATYPE_USER') : System.getenv('SONATYPE_USER') - password = project.hasProperty('SONATYPE_PASSWORD') ? project.property('SONATYPE_PASSWORD') : System.getenv('SONATYPE_PASSWORD') - } - + } + if ((project.hasProperty('SONATYPE_USER') || System.getenv('SONATYPE_USER') != null) && (project.hasProperty('SONATYPE_PASSWORD') || System.getenv('SONATYPE_PASSWORD') != null)) { + maven { + name = "sonatype" + url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/") + + credentials { + username = project.hasProperty('SONATYPE_USER') ? project.property('SONATYPE_USER') : System.getenv('SONATYPE_USER') + password = project.hasProperty('SONATYPE_PASSWORD') ? project.property('SONATYPE_PASSWORD') : System.getenv('SONATYPE_PASSWORD') } } } @@ -80,13 +74,13 @@ publishing { if (project.hasProperty("signing.gnupg.keyName")) { apply plugin: 'signing' - + signing { useGpgCmd() - + sign publishing.publications } - + task signAll { tasks.withType(Sign).forEach { dependsOn(it)