From d83a48966cf0f7b814033e22f46e07bb6b4b7f3c Mon Sep 17 00:00:00 2001 From: Patrick Mirwald Date: Mon, 27 Oct 2025 15:17:05 +0100 Subject: [PATCH 1/6] ci: update iOS simulator OS version to 26.0.1 --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 21509f2..141947c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,7 +25,7 @@ jobs: - name: Build testapp and test request (iOS) run: | cd iostests - xcodebuild clean test -project TestApp.xcodeproj -scheme TestApp -destination "platform=iOS Simulator,OS=26.0,name=iPhone 16" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO region=${{ secrets.region }} clientId=${{ secrets.clientid }} + xcodebuild clean test -project TestApp.xcodeproj -scheme TestApp -destination "platform=iOS Simulator,OS=26.0.1,name=iPhone 16" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO region=${{ secrets.region }} clientId=${{ secrets.clientid }} - name: Upload test result if: ${{ always() }} uses: actions/upload-artifact@v4 From 53cb8e40dfdce8ad8c23fa25398f552acecc1c7c Mon Sep 17 00:00:00 2001 From: Patrick Mirwald Date: Mon, 27 Oct 2025 15:18:12 +0100 Subject: [PATCH 2/6] ci: downgrade JDK from 21 to 17 in publish workflow --- .github/workflows/publish.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 39f2f86..066ac10 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -9,10 +9,10 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Set up JDK 21 + - name: Set up JDK 17 uses: actions/setup-java@v4 with: - java-version: 21 + java-version: 17 distribution: 'temurin' - name: Grant Permission to Execute run: chmod +x gradlew From 01120982d439ccfc76f4ba1400782a9e478c44ff Mon Sep 17 00:00:00 2001 From: Patrick Mirwald Date: Mon, 27 Oct 2025 15:18:48 +0100 Subject: [PATCH 3/6] chore: lower minSdkVersion from 31 to 21 --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 938d0c7..75565b0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -138,7 +138,7 @@ kotlin { configure { defaultConfig.apply { compileSdk = 36 - minSdkVersion(31) + minSdkVersion(21) targetSdkVersion(36) testInstrumentationRunner = "org.robolectric.RobolectricTestRunner" } From 34b31aa4da8bf4f0b34f36e1b69ed7c68f2cd619 Mon Sep 17 00:00:00 2001 From: Patrick Mirwald Date: Mon, 27 Oct 2025 15:19:53 +0100 Subject: [PATCH 4/6] feat: migrate to vanniktech maven publish plugin for new Sonatype setup --- build.gradle.kts | 121 +++++++++++++------------------------- gradle/libs.versions.toml | 2 + 2 files changed, 44 insertions(+), 79 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 75565b0..dc6c5e0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,6 @@ import com.android.build.gradle.LibraryExtension import com.liftric.vault.GetVaultSecretTask +import com.vanniktech.maven.publish.KotlinMultiplatform import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.dsl.KotlinVersion import org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeSimulatorTest @@ -12,8 +13,46 @@ plugins { alias(libs.plugins.npm.publishing) alias(libs.plugins.versioning) alias(libs.plugins.vault.client) - id("maven-publish") - id("signing") + alias(libs.plugins.publish) +} + +val actualVersion = with(versioning.info) { + if (branch == "HEAD" && dirty.not()) tag else full +} + +mavenPublishing { + publishToMavenCentral() + signAllPublications() + configure( + KotlinMultiplatform( + sourcesJar = true, + androidVariantsToPublish = listOf("debug", "release"), + ) + ) + + coordinates("com.liftric", "cognito-idp", actualVersion) + pom { + name.set(project.name) + description.set("Lightweight AWS Cognito Identity Provider client for Kotlin Multiplatform projects.") + url.set("https://github.com/liftric/cognito-idp") + + licenses { + license { + name.set("MIT") + url.set("https://github.com/liftric/cognito-idp/blob/master/LICENSE") + } + } + developers { + developer { + id.set("liftric") + name.set("Liftric GmbH") + email.set("team@liftric.com") + } + } + scm { + url.set("https://github.com/liftric/cognito-idp") + } + } } repositories { @@ -156,25 +195,10 @@ configure { } namespace = "com.liftric.cognito.idp" - - publishing { - multipleVariants { - allVariants() - withJavadocJar() - } - } } group = "com.liftric" -version = with(versioning.info) { - if (branch == "HEAD" && dirty.not()) tag else full -} - -afterEvaluate { - project.publishing.publications.withType(MavenPublication::class.java).forEach { - it.groupId = group.toString() - } -} +version = actualVersion tasks { withType(KotlinNativeSimulatorTest::class) { @@ -260,58 +284,10 @@ tasks { } } -val ossrhUsername: String? by project -val ossrhPassword: String? by project - val javadocJar by tasks.registering(Jar::class) { archiveClassifier.set("javadoc") } -publishing { - repositories { - maven { - name = "sonatype" - setUrl("https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/") - credentials { - username = ossrhUsername - password = ossrhPassword - } - } - } - - publications.withType { - artifact(javadocJar.get()) - - pom { - name.set(project.name) - description.set("Lightweight AWS Cognito Identity Provider client for Kotlin Multiplatform projects.") - url.set("https://github.com/liftric/cognito-idp") - - licenses { - license { - name.set("MIT") - url.set("https://github.com/liftric/cognito-idp/blob/master/LICENSE") - } - } - developers { - developer { - id.set("benjohnde") - name.set("Ben John") - email.set("john@liftric.com") - } - developer { - id.set("ingwersaft") - name.set("Marcel Kesselring") - email.set("kesselring@liftric.com") - } - } - scm { - url.set("https://github.com/liftric/cognito-idp") - } - } - } -} - val npmAccessKey: String? by project npmPublish { @@ -347,13 +323,6 @@ npmPublish { } } -signing { - val signingKey: String? by project - val signingPassword: String? by project - useInMemoryPgpKeys(signingKey, signingPassword) - sign(publishing.publications) -} - vault { vaultAddress.set("https://dark-lord.liftric.io") if (System.getenv("CI") == null) { @@ -364,18 +333,12 @@ vault { } tasks { afterEvaluate { - val signingTasks = filter { it.name.startsWith("sign") } all { // lets bruteforce this until the plugins play along nicely again if (name.contains("compile", true) && name.contains("kotlin", true)) { dependsOn("createJsEnvHack") } - if (name.startsWith("publish")) { - signingTasks.forEach { signTask -> - dependsOn(signTask) - } - } } } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5915d49..0ac409b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,6 +3,7 @@ "npm-publishing" = "4.1.3" "vault-client" = "3.0.0" "versioning" = "3.1.0" +"publish" = "0.34.0" # dependencies "android-tools-gradle" = "8.13.0" "kotlin" = "2.2.20" @@ -30,3 +31,4 @@ "npm-publishing" = { id = "org.danilopianini.npm.publish", version.ref = "npm-publishing" } "vault-client" = { id = "com.liftric.vault-client-plugin", version.ref = "vault-client" } "versioning" = { id = "net.nemerosa.versioning", version.ref = "versioning" } +"publish" = { id = "com.vanniktech.maven.publish", version.ref = "publish" } \ No newline at end of file From 40063152fed1410c002a84c62a9b05cacee389b7 Mon Sep 17 00:00:00 2001 From: Patrick Mirwald Date: Mon, 27 Oct 2025 15:20:12 +0100 Subject: [PATCH 5/6] ci: update publish workflow for new Maven Central plugin --- .github/workflows/publish.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 066ac10..ad5a6ba 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -20,9 +20,10 @@ jobs: run: ./gradlew versionDisplay - name: Publish Library env: - ORG_GRADLE_PROJECT_signingKey: ${{ secrets.OSSRH_GPG_SECRET_KEY }} - ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} - ORG_GRADLE_PROJECT_ossrhUsername: ${{ secrets.OSSRH_USERNAME }} - ORG_GRADLE_PROJECT_ossrhPassword: ${{ secrets.OSSRH_PASSWORD }} ORG_GRADLE_PROJECT_npmAccessKey: ${{ secrets.NPMJS_ACCESS_KEY }} - run: region=${{ secrets.region }} clientId=${{ secrets.clientid }} ./gradlew publishAllPublicationsToSonatypeRepository publishJsPackageToNpmjsRegistry + ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.OSSRH_USERNAME }} + ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.OSSRH_PASSWORD }} + ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.OSSRH_GPG_SECRET_KEY }} + ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} + run: region=${{ secrets.region }} clientId=${{ secrets.clientid }} ./gradlew publishToMavenCentral +# run: region=${{ secrets.region }} clientId=${{ secrets.clientid }} ./gradlew publishToMavenCentral publishJsPackageToNpmjsRegistry From b416a1688a21c6d28c0710f442b18802e91c93c0 Mon Sep 17 00:00:00 2001 From: Patrick Mirwald Date: Mon, 27 Oct 2025 15:23:33 +0100 Subject: [PATCH 6/6] feat(ci): add back npm publish task --- .github/workflows/publish.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index ad5a6ba..65f0cf7 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -25,5 +25,4 @@ jobs: ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.OSSRH_PASSWORD }} ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.OSSRH_GPG_SECRET_KEY }} ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} - run: region=${{ secrets.region }} clientId=${{ secrets.clientid }} ./gradlew publishToMavenCentral -# run: region=${{ secrets.region }} clientId=${{ secrets.clientid }} ./gradlew publishToMavenCentral publishJsPackageToNpmjsRegistry + run: region=${{ secrets.region }} clientId=${{ secrets.clientid }} ./gradlew publishToMavenCentral publishJsPackageToNpmjsRegistry