Adds a maven publishing to ship quartz

This commit is contained in:
Vitor Pamplona
2025-09-23 15:16:26 -04:00
parent 0499dcc647
commit ce81157dad
4 changed files with 75 additions and 12 deletions

View File

@@ -228,3 +228,11 @@ jobs:
asset_path: amethyst/build/outputs/bundle/fdroidRelease/amethyst-fdroid-release.aab
asset_name: amethyst-fdroid-${{ github.ref_name }}.aab
asset_content_type: application/zip
- name: Publish Quartz Lib
run: ./gradlew publishAllPublicationsToMavenCentral --no-configuration-cache
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_PASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_PRIVATE_KEY }}
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_PASSWORD }}

View File

@@ -237,26 +237,25 @@ openssl base64 < <my-release-key.keystore> | tr -d '\n' | tee some_signing_key.j
## Using the Quartz library
Setup [JitPack.io](https://jitpack.io/#vitorpamplona/amethyst/v0.84.3) to your build file
### Installing
Add `maven { url 'https://jitpack.io' }` to settings.gradle at the end of repositories:
Add the following line to your `commonMain` dependencies:
```gradle
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
implementation('com.github.vitorpamplona.amethyst:quartz:<Amethyst Version>')
```
Add the dependency by using one of the versions [here](https://jitpack.io/#vitorpamplona/amethyst/)
Variations to each platform are also available:
```gradle
implementation('com.github.vitorpamplona.amethyst:quartz:<tag, commit, -SNAPSHOT>')
implementation('com.github.vitorpamplona.amethyst:quartz-android:<Amethyst Version>')
implementation('com.github.vitorpamplona.amethyst:quartz-jvm:<Amethyst Version>')
implementation('com.github.vitorpamplona.amethyst:quartz-iosarm64:<Amethyst Version>')
implementation('com.github.vitorpamplona.amethyst:quartz-iossimulatorarm64:<Amethyst Version>')
```
### How to use
Manage logged in users with the `KeyPair` class
```kt

View File

@@ -60,6 +60,7 @@ androidxCollection = "1.5.0"
kotlinStdlib = "2.2.20"
kotlinTest = "2.2.10"
core = "1.7.0"
mavenPublish = "0.34.0"
[libraries]
abedElazizShe-image-compressor = { group = "com.github.AbedElazizShe", name = "LightCompressor", version.ref = "lightcompressor" }
@@ -165,3 +166,4 @@ jetbrainsComposeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version
serialization = { id = 'org.jetbrains.kotlin.plugin.serialization', version.ref = 'kotlinxSerializationPlugin' }
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
androidKotlinMultiplatformLibrary = { id = "com.android.kotlin.multiplatform.library", version.ref = "agp" }
vanniktech-mavenPublish = { id = "com.vanniktech.maven.publish", version.ref = "mavenPublish" }

View File

@@ -1,9 +1,11 @@
import com.vanniktech.maven.publish.KotlinMultiplatform
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.androidLibrary)
alias(libs.plugins.serialization)
alias(libs.plugins.vanniktech.mavenPublish)
}
android {
@@ -233,3 +235,55 @@ kotlin {
}
}
}
mavenPublishing {
// sources publishing is always enabled by the Kotlin Multiplatform plugin
configure(
KotlinMultiplatform(
// whether to publish a sources jar
sourcesJar = true,
// configure which Android library variants to publish if this project has an Android target
// defaults to "release" when using the main plugin and nothing for the base plugin
androidVariantsToPublish = listOf("release"),
)
)
coordinates(
groupId = "com.vitorpamplona.quartz",
artifactId = "quartz",
version = "1.03.0"
)
// Configure publishing to Maven Central
//publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL, automaticRelease = true)
publishToMavenCentral(automaticRelease = true)
// Enable GPG signing for all publications
signAllPublications()
pom {
name = "Quartz: Nostr Library for Kotlin Multiplatform"
description = "Nostr library ported to Kotlin/Multiplatform for JVM, Android, iOS & Linux"
inceptionYear = "2025"
url = "https://github.com/vitorpamplona/amethyst/"
licenses {
license {
name = "MIT License"
url = "https://github.com/vitorpamplona/amethyst/blob/main/LICENSE"
}
}
developers {
developer {
id = "vitorpamplona"
name = "Vitor Pamplona"
url = "http://vitorpamplona.com"
email = "vitor@vitorpamplona.com"
}
}
scm {
url = "https://github.com/vitorpamplona/amethyst/"
connection = "https://github.com/vitorpamplona/amethyst/.git"
}
}
}