From b725466e3681ed02bba223d68031f43e087bde47 Mon Sep 17 00:00:00 2001 From: uzzu Date: Mon, 28 Mar 2022 01:47:21 +0900 Subject: [PATCH 01/10] Use gradle nexus publish --- build.gradle.kts | 14 ++++++++++++++ settings.gradle.kts | 2 ++ subprojects/core/core.build.gradle.kts | 12 ------------ 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index b87f307..0692377 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,6 +8,7 @@ buildscript { plugins { base alias(pluginLibs.plugins.dotenv) + alias(pluginLibs.plugins.gradle.nexus.publish) alias(pluginLibs.plugins.dokka) apply false alias(pluginLibs.plugins.ktlint) } @@ -38,3 +39,16 @@ subprojects { ignoreFailures.set(true) } } + +nexusPublishing { + repositories { + sonatype { + username.set(env.OSSRH_USERNAME.orElse("")) + password.set(env.OSSRH_PASSWORD.orElse("")) + } + } + transitionCheckOptions { + maxRetries.set(100) + delayBetween.set(java.time.Duration.ofSeconds(5)) + } +} diff --git a/settings.gradle.kts b/settings.gradle.kts index 34eb30d..16c56fd 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -21,6 +21,7 @@ dependencyResolutionManagement { val assertk = "0.25" val androidGradlePlugin = "7.0.3" // sdk version is defined in bulidSrc val dotenv = "1.2.0" + val gradleNexusPublish = "1.1.0" val ktlint = "10.2.1" val androidCompileSdkVersion = 31 @@ -34,6 +35,7 @@ dependencyResolutionManagement { create("pluginLibs") { plugin("dotenv", "co.uzzu.dotenv.gradle").version(dotenv) + plugin("gradle-nexus-publish", "io.github.gradle-nexus.publish-plugin").version(gradleNexusPublish) plugin("kotlin-multiplatform", "org.jetbrains.kotlin.multiplatform").version(kotlin) plugin("android-library", "com.android.library").version(androidGradlePlugin) plugin("ktlint", "org.jlleitschuh.gradle.ktlint").version(ktlint) diff --git a/subprojects/core/core.build.gradle.kts b/subprojects/core/core.build.gradle.kts index b0f6de9..3dcc6df 100644 --- a/subprojects/core/core.build.gradle.kts +++ b/subprojects/core/core.build.gradle.kts @@ -136,18 +136,6 @@ setProperty("archivesBaseName", publishingArtifactIdBase) afterEvaluate { // workaround for AGP to resolve android library artifactId correctly. publishing { - repositories { - maven { - url = env.PUBLISH_PRODUCTION.orNull() - ?.run { uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/") } - ?: uri("https://oss.sonatype.org/content/repositories/snapshots/") - credentials { - username = env.OSSRH_USERNAME.orElse("") - password = env.OSSRH_PASSWORD.orElse("") - } - } - } - publications.withType().all { val publishingArtifactId = when (name) { "metadata" -> { From 5c402c3ddb73fcb9d1efd1a5cd0ada959c7a2865 Mon Sep 17 00:00:00 2001 From: uzzu Date: Mon, 28 Mar 2022 03:51:21 +0900 Subject: [PATCH 02/10] WIP testing publish --- .github/workflows/pull-request-build.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/pull-request-build.yml b/.github/workflows/pull-request-build.yml index 722210a..af75a2e 100644 --- a/.github/workflows/pull-request-build.yml +++ b/.github/workflows/pull-request-build.yml @@ -13,12 +13,24 @@ jobs: with: distribution: 'adopt' java-version: '11' + - name: Set env + run: | + echo 'OSSRH_USERNAME=${{ secrets.OSSRH_USERNAME }}' >> $GITHUB_ENV + echo 'OSSRH_PASSWORD=${{ secrets.OSSRH_PASSWORD }}' >> $GITHUB_ENV + echo 'SIGNING_KEYID=${{ secrets.SIGNING_KEYID }}' >> $GITHUB_ENV + echo 'SIGNING_PASSWORD=${{ secrets.SIGNING_PASSWORD }}' >> $GITHUB_ENV + echo 'SIGNING_KEY<> $GITHUB_ENV + echo '${{ secrets.SIGNING_KEY }}' >> $GITHUB_ENV + echo 'EOF' >> $GITHUB_ENV - name: Gradle clean run: | ./gradlew clean - name: Gradle build run: | ./gradlew build + - name Gradle publish to nexus-snapshot + run: | + ./gradlew publishToSonatype - name: Upload Build Report uses: actions/upload-artifact@v1 if: always() From 4e0979678e99eb40c252cf3ae3fbab0f1fb240ee Mon Sep 17 00:00:00 2001 From: Hirokazu Uzu Date: Mon, 28 Mar 2022 04:02:56 +0900 Subject: [PATCH 03/10] Fix syntax error --- .github/workflows/pull-request-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull-request-build.yml b/.github/workflows/pull-request-build.yml index af75a2e..b947288 100644 --- a/.github/workflows/pull-request-build.yml +++ b/.github/workflows/pull-request-build.yml @@ -28,7 +28,7 @@ jobs: - name: Gradle build run: | ./gradlew build - - name Gradle publish to nexus-snapshot + - name: Gradle publish to nexus-snapshot run: | ./gradlew publishToSonatype - name: Upload Build Report From ccf9091f1d3428ffa37acbdff5c7cc8cfd25f851 Mon Sep 17 00:00:00 2001 From: Hirokazu Uzu Date: Mon, 28 Mar 2022 04:33:37 +0900 Subject: [PATCH 04/10] Add staging profile id --- .github/workflows/pull-request-build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pull-request-build.yml b/.github/workflows/pull-request-build.yml index b947288..fd03db2 100644 --- a/.github/workflows/pull-request-build.yml +++ b/.github/workflows/pull-request-build.yml @@ -17,6 +17,7 @@ jobs: run: | echo 'OSSRH_USERNAME=${{ secrets.OSSRH_USERNAME }}' >> $GITHUB_ENV echo 'OSSRH_PASSWORD=${{ secrets.OSSRH_PASSWORD }}' >> $GITHUB_ENV + echo 'OSSRH_STAGING_PROFILE_ID=${{ secrets.OSSRH_STAGING_PROFILE_ID }}' >> $GITHUB_ENV echo 'SIGNING_KEYID=${{ secrets.SIGNING_KEYID }}' >> $GITHUB_ENV echo 'SIGNING_PASSWORD=${{ secrets.SIGNING_PASSWORD }}' >> $GITHUB_ENV echo 'SIGNING_KEY<> $GITHUB_ENV From 60aea7c6a334b7731ffacf0b647a0b5d6be7ccb2 Mon Sep 17 00:00:00 2001 From: Hirokazu Uzu Date: Mon, 28 Mar 2022 04:37:46 +0900 Subject: [PATCH 05/10] Add OSSRH_STAGING_PROFILE_ID --- .env.template | 1 + 1 file changed, 1 insertion(+) diff --git a/.env.template b/.env.template index 1b0606e..6b76b3f 100644 --- a/.env.template +++ b/.env.template @@ -1,4 +1,5 @@ PUBLISH_PRODUCTION= +OSSRH_STAGING_PROFILE_ID= OSSRH_USERNAME= OSSRH_PASSWORD= SIGNING_KEYID= From e604cbf834a3bac3f5b813ffedc4dbe4a5d4c659 Mon Sep 17 00:00:00 2001 From: Hirokazu Uzu Date: Mon, 28 Mar 2022 04:39:25 +0900 Subject: [PATCH 06/10] Apply stagingProfileId --- build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/build.gradle.kts b/build.gradle.kts index 0692377..e13129b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -43,6 +43,7 @@ subprojects { nexusPublishing { repositories { sonatype { + stagingProfileId.set(env.OSSRH_STAGING_PROFILE_ID.orElse("")) username.set(env.OSSRH_USERNAME.orElse("")) password.set(env.OSSRH_PASSWORD.orElse("")) } From 6c3810600db569befdb959880647517d82816289 Mon Sep 17 00:00:00 2001 From: Hirokazu Uzu Date: Mon, 28 Mar 2022 09:40:06 +0900 Subject: [PATCH 07/10] dump stacktrace --- .github/workflows/pull-request-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull-request-build.yml b/.github/workflows/pull-request-build.yml index fd03db2..c7bc34e 100644 --- a/.github/workflows/pull-request-build.yml +++ b/.github/workflows/pull-request-build.yml @@ -31,7 +31,7 @@ jobs: ./gradlew build - name: Gradle publish to nexus-snapshot run: | - ./gradlew publishToSonatype + ./gradlew publishToSonatype --stacktrace - name: Upload Build Report uses: actions/upload-artifact@v1 if: always() From 92fa6076dd2363206558b65c805cb41c580e4566 Mon Sep 17 00:00:00 2001 From: Hirokazu Uzu Date: Wed, 29 Jun 2022 01:08:53 +0900 Subject: [PATCH 08/10] Try to use pgp keys --- .github/workflows/pull-request-build.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pull-request-build.yml b/.github/workflows/pull-request-build.yml index c7bc34e..c3695ef 100644 --- a/.github/workflows/pull-request-build.yml +++ b/.github/workflows/pull-request-build.yml @@ -29,9 +29,12 @@ jobs: - name: Gradle build run: | ./gradlew build + - name: Gradle publish to mavenLocal + run: | + ./gradlew publishToMavenLocal - name: Gradle publish to nexus-snapshot run: | - ./gradlew publishToSonatype --stacktrace + PUBLISH_PRODUCTION=1 ./gradlew publishToSonatype --stacktrace - name: Upload Build Report uses: actions/upload-artifact@v1 if: always() From 284344fb70c4eb3a6c5244d276275734c0004f86 Mon Sep 17 00:00:00 2001 From: uzzu Date: Thu, 30 Jun 2022 00:55:26 +0900 Subject: [PATCH 09/10] Temporary use snapshot repos --- buildSrc/src/main/kotlin/Publishing.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/Publishing.kt b/buildSrc/src/main/kotlin/Publishing.kt index 0a83cf5..ed3c5ef 100644 --- a/buildSrc/src/main/kotlin/Publishing.kt +++ b/buildSrc/src/main/kotlin/Publishing.kt @@ -21,7 +21,7 @@ val Project.publishingArtifactIdBase: String fun Project.publishingArtifactVersion(isPublishProduction: Boolean): String = if (isPublishProduction) { - publishingArtifactVersion + "$publishingArtifactVersion-SNAPSHOT" } else { "$publishingArtifactVersion-SNAPSHOT" } From 0974c51e0158209e160d7d2a345fd666f913ecca Mon Sep 17 00:00:00 2001 From: uzzu Date: Thu, 30 Jun 2022 01:30:37 +0900 Subject: [PATCH 10/10] Use useStaging property --- .github/workflows/pull-request-build.yml | 2 +- build.gradle.kts | 1 + buildSrc/src/main/kotlin/Publishing.kt | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pull-request-build.yml b/.github/workflows/pull-request-build.yml index c3695ef..a5bfc54 100644 --- a/.github/workflows/pull-request-build.yml +++ b/.github/workflows/pull-request-build.yml @@ -34,7 +34,7 @@ jobs: ./gradlew publishToMavenLocal - name: Gradle publish to nexus-snapshot run: | - PUBLISH_PRODUCTION=1 ./gradlew publishToSonatype --stacktrace + ./gradlew publishToSonatype --stacktrace - name: Upload Build Report uses: actions/upload-artifact@v1 if: always() diff --git a/build.gradle.kts b/build.gradle.kts index e13129b..b7f58c4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -48,6 +48,7 @@ nexusPublishing { password.set(env.OSSRH_PASSWORD.orElse("")) } } + useStaging.set(!env.PUBLISH_PRODUCTION.isPresent) transitionCheckOptions { maxRetries.set(100) delayBetween.set(java.time.Duration.ofSeconds(5)) diff --git a/buildSrc/src/main/kotlin/Publishing.kt b/buildSrc/src/main/kotlin/Publishing.kt index ed3c5ef..0a83cf5 100644 --- a/buildSrc/src/main/kotlin/Publishing.kt +++ b/buildSrc/src/main/kotlin/Publishing.kt @@ -21,7 +21,7 @@ val Project.publishingArtifactIdBase: String fun Project.publishingArtifactVersion(isPublishProduction: Boolean): String = if (isPublishProduction) { - "$publishingArtifactVersion-SNAPSHOT" + publishingArtifactVersion } else { "$publishingArtifactVersion-SNAPSHOT" }