diff --git a/.github/workflows/build_and_publish.yml b/.github/workflows/build_and_publish.yml index 43bc8a9..c3eaf45 100644 --- a/.github/workflows/build_and_publish.yml +++ b/.github/workflows/build_and_publish.yml @@ -34,7 +34,7 @@ jobs: distribution: 'temurin' - name: Setup gradle - uses: gradle/gradle-build-action@v2.4.2 + uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 - name: Check api run: ./gradlew apiCheck @@ -59,7 +59,7 @@ jobs: distribution: 'temurin' - name: Setup gradle - uses: gradle/gradle-build-action@v2.4.2 + uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 - name: Test ${{ matrix.config.target }} targets continue-on-error: ${{ matrix.config.continueOnError }} @@ -84,7 +84,7 @@ jobs: distribution: 'temurin' - name: Setup gradle - uses: gradle/gradle-build-action@v2.4.2 + uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 - name: Setup Pages uses: actions/configure-pages@v3 @@ -101,47 +101,6 @@ jobs: id: deployment uses: actions/deploy-pages@v1 - - name: Create new release from tag - env: - github_token: ${{ secrets.GITHUB_TOKEN }} - uses: softprops/action-gh-release@v1 - with: - generate_release_notes: true - token: ${{ env.github_token }} - - - create-staging-repository: - runs-on: ubuntu-latest - name: Create staging repository - needs: release - outputs: - repository_id: ${{ steps.create.outputs.repository_id }} - steps: - - id: create - uses: nexus-actions/create-nexus-staging-repo@v1.3.0 - with: - username: mirzemehdi - password: ${{ secrets.SONATYPE_PASSWORD }} - staging_profile_id: ${{ secrets.SONATYPE_STAGING_PROFILE_ID }} - description: Created by GitHub Actions - base_url: https://s01.oss.sonatype.org/service/local/ - - publish: - name: Publish to Maven - runs-on: macos-latest - needs: create-staging-repository - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Setup JDK 17 - uses: actions/setup-java@v3 - with: - java-version: '17' - distribution: 'temurin' - - - name: Setup gradle - uses: gradle/gradle-build-action@v2.4.2 - - name: Write secrets to local.properties run: | echo sonatypeUsername="${SONATYPE_USERNAME}" >> "local.properties" @@ -155,19 +114,16 @@ jobs: GPG_KEY_PASSWORD: ${{ secrets.GPG_KEY_PASSWORD }} GPG_KEY_SECRET: ${{ secrets.GPG_KEY_SECRET }} - - name: Release to sonatype - run: ./gradlew publishAllPublicationsToMavenRepository + - name: Publish to sonatype + uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 + run: ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository - close-staging-repository: - name: Close staging repository - runs-on: ubuntu-latest - needs: [ create-staging-repository, publish ] - if: ${{ always() && needs.create-staging-repository.result == 'success' }} - steps: - - name: Close staging repository - uses: nexus-actions/release-nexus-staging-repo@6632a81bfab63557b2717e8423b0a620ae5aa414 + - name: Create new release from tag + env: + github_token: ${{ secrets.GITHUB_TOKEN }} + uses: softprops/action-gh-release@v1 with: - username: mirzemehdi - password: ${{ secrets.SONATYPE_PASSWORD }} - staging_repository_id: ${{ needs.create-staging-repository.outputs.repository_id }} - base_url: https://s01.oss.sonatype.org/service/local/ + generate_release_notes: true + token: ${{ env.github_token }} + + diff --git a/build.gradle.kts b/build.gradle.kts index 132ba5c..76d3822 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,6 +13,7 @@ plugins { alias(libs.plugins.dokka) apply false alias(libs.plugins.googleServices) apply false alias(libs.plugins.kotlinx.binary.validator) + alias(libs.plugins.nexusPublish) } @@ -21,38 +22,18 @@ plugins { allprojects { group = "io.github.mirzemehdi" version = project.properties["kmpAuthVersion"] as String - val sonatypeUsername = gradleLocalProperties(rootDir).getProperty("sonatypeUsername") - val sonatypePassword = gradleLocalProperties(rootDir).getProperty("sonatypePassword") + val gpgKeySecret = gradleLocalProperties(rootDir).getProperty("gpgKeySecret") val gpgKeyPassword = gradleLocalProperties(rootDir).getProperty("gpgKeyPassword") - val excludedModules = listOf(":sampleApp:composeApp",":sampleApp") + val excludedModules = listOf(":sampleApp:composeApp", ":sampleApp") if (project.path in excludedModules) return@allprojects apply(plugin = "org.jetbrains.dokka") apply(plugin = "maven-publish") apply(plugin = "signing") - extensions.configure { - repositories { - maven { - val isSnapshot = version.toString().endsWith("SNAPSHOT") - val repositoryId = System.getenv("SONATYPE_REPOSITORY_ID") ?: "" - url = uri( - when{ - isSnapshot.not() && repositoryId.isNotEmpty() -> "https://s01.oss.sonatype.org/service/local/staging/deployByRepositoryId/${repositoryId}/" - isSnapshot.not() -> "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2" - else -> "https://s01.oss.sonatype.org/content/repositories/snapshots" - } - ) - credentials { - username = sonatypeUsername - password = sonatypePassword - } - } - } - val javadocJar = tasks.register("javadocJar") { dependsOn(tasks.getByName("dokkaHtml")) archiveClassifier.set("javadoc") @@ -103,5 +84,17 @@ allprojects { dependsOn(project.tasks.withType(Sign::class.java)) } } +nexusPublishing { + repositories { + sonatype { //only for users registered in Sonatype after 24 Feb 2021 + nexusUrl.set(uri("https://s01.oss.sonatype.org/service/local/")) + snapshotRepositoryUrl.set(uri("https://s01.oss.sonatype.org/content/repositories/snapshots/")) + val sonatypeUsername = gradleLocalProperties(rootDir).getProperty("sonatypeUsername") + val sonatypePassword = gradleLocalProperties(rootDir).getProperty("sonatypePassword") + username = sonatypeUsername + password = sonatypePassword + } + } +} diff --git a/gradle.properties b/gradle.properties index 78e0fdc..eae01c8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -18,4 +18,4 @@ kotlin.mpp.enableCInteropCommonization=true #Development development=true -kmpAuthVersion=2.0.0 \ No newline at end of file +kmpAuthVersion=2.1.0-alpha01 \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2154e86..73e59d8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -24,6 +24,7 @@ koinCompose = "4.0.0-RC1" googleServices = "4.4.2" firebaseGitLiveAuth = "1.12.0" androidLegacyPlayServices = "21.2.0" +nexusPublish = "2.0.0" [libraries] @@ -69,3 +70,4 @@ kotlinNativeCocoaPods = { id = "org.jetbrains.kotlin.native.cocoapods", version. kotlinx-binary-validator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "kotlinx-binary-validator" } dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" } googleServices = { id = "com.google.gms.google-services", version.ref = "googleServices" } +nexusPublish = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexusPublish" } diff --git a/kmpauth-google/kmpauth_google.podspec b/kmpauth-google/kmpauth_google.podspec index c473034..ec883a7 100644 --- a/kmpauth-google/kmpauth_google.podspec +++ b/kmpauth-google/kmpauth_google.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |spec| spec.name = 'kmpauth_google' - spec.version = '2.0.0' + spec.version = '2.1.0-alpha01' spec.homepage = '' spec.source = { :http=> ''} spec.authors = ''