diff --git a/.github/workflows/gradle-publish.yml b/.github/workflows/gradle-publish.yml new file mode 100644 index 0000000..4177d80 --- /dev/null +++ b/.github/workflows/gradle-publish.yml @@ -0,0 +1,47 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. +# This workflow will build a package using Gradle and then publish it to GitHub packages when a release is created +# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#Publishing-using-gradle + +name: Release + +on: + release: + types: [created] + +jobs: + build: + runs-on: ubuntu-latest + environment: release + + permissions: + contents: read + packages: write + + steps: + - uses: actions/checkout@v4 + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + java-version: '21' + distribution: 'temurin' + server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml + server-username: OSSRH_USERNAME + server-password: OSSRH_TOKEN + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0 + + - name: Build with Gradle + run: ./gradlew build + + - name: Publish to OSSRH repository + run: ./gradlew publish + env: + OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} + OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }} + SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }} + SIGNING_KEY_PRIVATE: ${{ secrets.SIGNING_KEY_PRIVATE }} + SIGNING_PASSPHRASE: ${{ secrets.SIGNING_PASSPHRASE }} diff --git a/build.gradle.kts b/build.gradle.kts index b3d6c0c..248c75e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -40,10 +40,10 @@ dependencies { } val ossrhUsername = System.getenv("OSSRH_USERNAME") - ?: project.findProperty("kotlin.mcp.sdk.packages.username") as String? + ?: project.findProperty("OSSRH_USERNAME") as String? val ossrhPassword = System.getenv("OSSRH_TOKEN") - ?: project.findProperty("kotlin.mcp.sdk.packages.password") as String? + ?: project.findProperty("OSSRH_TOKEN") as String? val sources = tasks.create("sourcesJar") { from(sourceSets["main"].allSource) @@ -52,8 +52,8 @@ val sources = tasks.create("sourcesJar") { publishing { repositories { - maven { - name = "OSSRH" + maven(url = "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { + name = "ossrh" credentials { username = ossrhUsername password = ossrhPassword @@ -120,9 +120,9 @@ fun configureEmptyJavadocArtifact(): org.gradle.jvm.tasks.Jar { } fun MavenPublication.signPublicationIfKeyPresent() { - val keyId = project.getSensitiveProperty("libs.sign.key.id") - val signingKey = project.getSensitiveProperty("libs.sign.key.private") - val signingKeyPassphrase = project.getSensitiveProperty("libs.sign.passphrase") + val keyId = project.getSensitiveProperty("SIGNING_KEY_ID") + val signingKey = project.getSensitiveProperty("SIGNING_KEY_PRIVATE") + val signingKeyPassphrase = project.getSensitiveProperty("SIGNING_PASSPHRASE") if (!signingKey.isNullOrBlank()) { the().apply {