Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 13 additions & 10 deletions .github/workflows/uniffi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -100,11 +100,8 @@ jobs:
- name: Setup Rust Toolchain
uses: dtolnay/rust-toolchain@stable

- name: Validate Gradle wrapper jar
uses: gradle/actions/wrapper-validation@v3

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
uses: gradle/actions/setup-gradle@v4

- name: Download all artifacts
uses: actions/download-artifact@v4
Expand Down Expand Up @@ -133,13 +130,21 @@ jobs:
- name: Print directory tree
run: tree build

- name: Publish Maven Artifact
- name: Publish Java Maven Artifact
env:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
GPG_SIGNING_PASSPHRASE: ${{ secrets.GPG_SIGNING_PASSPHRASE }}
run: ./gradlew publishAllPublicationsToCentralPortal -PpublishScope=java

- name: Publish Kotlin Maven Artifact
env:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
GPG_SIGNING_PASSPHRASE: ${{ secrets.GPG_SIGNING_PASSPHRASE }}
run: ./gradlew publishMavenKotlinPublicationToCentralPortal publishMavenJavaPublicationToCentralPortal
run: ./gradlew publishAllPublicationsToCentralPortal -PpublishScope=kotlin


release-csharp:
Expand Down Expand Up @@ -629,10 +634,8 @@ jobs:
java-version: '21'
distribution: 'temurin'

- name: Validate Gradle wrapper jar
uses: gradle/actions/wrapper-validation@v3
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
uses: gradle/actions/setup-gradle@v4

- name: Download Kotlin bindings
uses: actions/download-artifact@v4
Expand All @@ -652,4 +655,4 @@ jobs:
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
GPG_SIGNING_PASSPHRASE: ${{ secrets.GPG_SIGNING_PASSPHRASE }}
run: ./gradlew publishMavenKotlinAndroidPublicationToCentralPortal
run: ./gradlew publishAllPublicationsToCentralPortal -PpublishScope=android
82 changes: 46 additions & 36 deletions bindings/uniffi/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ plugins {
id("signing")
id("org.jetbrains.dokka") version "2.0.0"
id("org.jetbrains.dokka-javadoc") version "2.0.0"
id("com.gradleup.nmcp") version "0.0.9"
id("com.gradleup.nmcp") version "1.4.4"
}

repositories {
Expand Down Expand Up @@ -138,46 +138,56 @@ tasks {
}
}

// Use -PpublishScope=java|kotlin|desktop|android|all to control which publications are included
// desktop = java + kotlin
val publishScope = (findProperty("publishScope") as String?) ?: "all"

publishing {
publications {
create<MavenPublication>("mavenJava") {
groupId = "io.gorules"
artifactId = "zen-engine"
artifact(tasks["generateJavaJar"])
artifact(tasks["generateJavaSourcesJar"])
artifact(tasks["javadocJarJava"])

configurePom {
dependency("net.java.dev.jna:jna:5.17.0")
if (publishScope in listOf("all", "desktop", "java")) {
create<MavenPublication>("mavenJava") {
groupId = "io.gorules"
artifactId = "zen-engine"
artifact(tasks["generateJavaJar"])
artifact(tasks["generateJavaSourcesJar"])
artifact(tasks["javadocJarJava"])

configurePom {
dependency("net.java.dev.jna:jna:5.17.0")
}
}
}

create<MavenPublication>("mavenKotlin") {
groupId = "io.gorules"
artifactId = "zen-engine-kotlin"
artifact(tasks["generateKotlinJar"])
artifact(tasks["generateKotlinSourcesJar"])
artifact(tasks["javadocJarKotlin"])

configurePom {
dependency("net.java.dev.jna:jna:5.17.0")
if (publishScope in listOf("all", "desktop", "kotlin")) {
create<MavenPublication>("mavenKotlin") {
groupId = "io.gorules"
artifactId = "zen-engine-kotlin"
artifact(tasks["generateKotlinJar"])
artifact(tasks["generateKotlinSourcesJar"])
artifact(tasks["javadocJarKotlin"])

configurePom {
dependency("net.java.dev.jna:jna:5.17.0")
}
}
}

create<MavenPublication>("mavenKotlinAndroid") {
groupId = "io.gorules"
artifactId = "zen-engine-kotlin-android"

artifact("build-android/aar/zen-engine-android-release.aar") {
extension = "aar"
}
artifact(tasks["generateKotlinAndroidSourcesJar"])
artifact(tasks["javadocJarKotlinAndroid"])

configurePom {
dependency("net.java.dev.jna:jna:5.14.0", "aar")
dependency("androidx.core:core-ktx:1.12.0")
dependency("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2")
if (publishScope in listOf("all", "android")) {
create<MavenPublication>("mavenKotlinAndroid") {
groupId = "io.gorules"
artifactId = "zen-engine-kotlin-android"

artifact("build-android/aar/zen-engine-android-release.aar") {
extension = "aar"
}
artifact(tasks["generateKotlinAndroidSourcesJar"])
artifact(tasks["javadocJarKotlinAndroid"])

configurePom {
dependency("net.java.dev.jna:jna:5.14.0", "aar")
dependency("androidx.core:core-ktx:1.12.0")
dependency("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2")
}
}
}
}
Expand All @@ -194,13 +204,13 @@ signing {
val signingKey = Base64.getDecoder().decode(signingKeyBase64.get()).toString(Charsets.UTF_8)

useInMemoryPgpKeys(signingKey, signingPassphrase.get())
sign(publishing.publications["mavenJava"], publishing.publications["mavenKotlin"], publishing.publications["mavenKotlinAndroid"])
sign(*publishing.publications.toTypedArray())
}
}

nmcp {
publishAllPublications {
publicationType = "USER_MANAGED"
publishAllPublicationsToCentralPortal {
publishingType = "USER_MANAGED"

val remoteUsername = providers.environmentVariable("SONATYPE_USERNAME")
val remotePassword = providers.environmentVariable("SONATYPE_PASSWORD")
Expand Down
Loading