diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index c00a50f7..90ef4387 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -28,9 +28,13 @@ jobs: distribution: zulu - name: Prebuild library run: ./gradlew publishToMavenLocal --rerun-tasks + - name: Prebuild plugin + run: ./gradlew -p resources-generator publishToMavenLocal --rerun-tasks - name: Publish library - run: ./gradlew publish --no-parallel - - name: Publish plugin + run: ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository + - name: Publish plugin to maven central + run: ./gradlew -p resources-generator publishToSonatype closeAndReleaseSonatypeStagingRepository + - name: Publish plugin to Gradle Plugin Portal run: ./gradlew -p resources-generator publishPlugins -Pgradle.publish.key=${{ secrets.GRADLE_PLUGIN_PORTAL_KEY }} -Pgradle.publish.secret=${{ secrets.GRADLE_PLUGIN_PORTAL_SECRET }} release: name: Create release diff --git a/build.gradle.kts b/build.gradle.kts index df8fe5e5..09cd9761 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -24,3 +24,9 @@ allprojects { version = moko.versions.resourcesVersion.get() } } + +// required for nexus plugin +group = "dev.icerock.moko" +version = moko.versions.resourcesVersion.get() + +apply(plugin = "nexus-publication-convention") diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 68adccd4..6139bb42 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -62,3 +62,4 @@ kotlinCompilerEmbeddable = { module = "org.jetbrains.kotlin:kotlin-compiler-embe detektGradlePlugin = { module = "io.gitlab.arturbosch.detekt:detekt-gradle-plugin", version.ref = "detektVersion" } mokoMultiplatformPlugin = { module = "dev.icerock:mobile-multiplatform", version.ref = "mokoMultiplatformPluginVersion" } composeJetBrainsPlugin = { module = "org.jetbrains.compose:compose-gradle-plugin", version.ref = "composeJetbrainsVersion" } +nexusPublishing = { module = "io.github.gradle-nexus:publish-plugin", version = "2.0.0" } diff --git a/resources-build-logic/build.gradle.kts b/resources-build-logic/build.gradle.kts index 9f6eafc4..a0f15b67 100644 --- a/resources-build-logic/build.gradle.kts +++ b/resources-build-logic/build.gradle.kts @@ -14,4 +14,5 @@ dependencies { api(libs.kotlinGradlePlugin) api(libs.androidGradlePlugin) api(libs.detektGradlePlugin) + api(libs.nexusPublishing) } diff --git a/resources-build-logic/src/main/kotlin/nexus-publication-convention.gradle.kts b/resources-build-logic/src/main/kotlin/nexus-publication-convention.gradle.kts new file mode 100644 index 00000000..b799acc3 --- /dev/null +++ b/resources-build-logic/src/main/kotlin/nexus-publication-convention.gradle.kts @@ -0,0 +1,21 @@ +/* + * Copyright 2021 IceRock MAG Inc. Use of this source code is governed by the Apache 2.0 license. + */ + +import java.net.URI + +plugins { + id("io.github.gradle-nexus.publish-plugin") +} + +nexusPublishing { + repositories { + // see https://central.sonatype.org/publish/publish-portal-ossrh-staging-api/#configuration + sonatype { + nexusUrl.set(uri("https://ossrh-staging-api.central.sonatype.com/service/local/")) + snapshotRepositoryUrl.set(URI.create("https://central.sonatype.com/repository/maven-snapshots/")) + username.set(System.getenv("OSSRH_USER")) + password.set(System.getenv("OSSRH_KEY")) + } + } +} diff --git a/resources-build-logic/src/main/kotlin/publication-convention.gradle.kts b/resources-build-logic/src/main/kotlin/publication-convention.gradle.kts index 703f737e..5b3dfc3b 100644 --- a/resources-build-logic/src/main/kotlin/publication-convention.gradle.kts +++ b/resources-build-logic/src/main/kotlin/publication-convention.gradle.kts @@ -9,15 +9,6 @@ plugins { } publishing { - repositories.maven("https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/") { - name = "OSSRH" - - credentials { - username = System.getenv("OSSRH_USER") - password = System.getenv("OSSRH_KEY") - } - } - publications.withType { // Provide artifacts information requited by Maven Central pom { diff --git a/resources-generator/build.gradle.kts b/resources-generator/build.gradle.kts index fa995aaa..a5e1bb43 100644 --- a/resources-generator/build.gradle.kts +++ b/resources-generator/build.gradle.kts @@ -12,6 +12,7 @@ plugins { id("com.gradle.plugin-publish") version ("1.2.0") id("java-gradle-plugin") kotlin("plugin.serialization") version ("1.9.25") + id("nexus-publication-convention") } group = "dev.icerock.moko"