Skip to content

Commit 3abe18c

Browse files
authored
Migrate to Sonatype Central Portal (#24)
1 parent 15f8ff1 commit 3abe18c

File tree

8 files changed

+136
-227
lines changed

8 files changed

+136
-227
lines changed

.github/workflows/publish-new-version.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@ jobs:
2828
bump: ${{ inputs.bump }}
2929
file-path: ./buildSrc/src/main/kotlin/io/getstream/core/Configuration.kt
3030
excluded-modules: "app"
31+
use-official-plugin: false
3132
secrets:
3233
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
3334
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
3435
SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }}
3536
SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
3637
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
37-
SONATYPE_STAGING_PROFILE_ID: ${{ secrets.SONATYPE_STAGING_PROFILE_ID }}
38-
STREAM_PUBLIC_BOT_TOKEN: ${{ secrets.STREAM_PUBLIC_BOT_TOKEN }}
38+
STREAM_PUBLIC_BOT_TOKEN: ${{ secrets.STREAM_PUBLIC_BOT_TOKEN }}

build.gradle.kts

Lines changed: 76 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
import com.android.build.api.dsl.ApplicationExtension
22
import com.android.build.api.dsl.LibraryExtension
3+
import com.vanniktech.maven.publish.MavenPublishBaseExtension
4+
import io.getstream.core.Configuration
35
import java.io.FileNotFoundException
46
import java.util.Calendar
57

6-
apply(plugin = "io.github.gradle-nexus.publish-plugin")
7-
apply(plugin = "org.jetbrains.dokka")
8-
98
apply(from = "${rootDir}/gradle/scripts/sonar.gradle")
109
// Top-level build file where you can add configuration options common to all sub-projects/modules.
1110
plugins {
@@ -18,8 +17,8 @@ plugins {
1817
alias(libs.plugins.android.library) apply false
1918
alias(libs.plugins.kotlin.compose) apply false
2019
alias(libs.plugins.ksp) apply false
20+
alias(libs.plugins.maven.publish)
2121
alias(libs.plugins.dokka) apply false
22-
alias(libs.plugins.nexus) apply false
2322
alias(libs.plugins.arturbosch.detekt) apply true
2423
alias(libs.plugins.spotless) apply true
2524
alias(libs.plugins.sonarqube) apply true
@@ -43,6 +42,9 @@ detekt {
4342
buildUponDefaultConfig = true
4443
}
4544

45+
private val isSnapshot = System.getenv("SNAPSHOT")?.toBoolean() == true
46+
version = if (isSnapshot) Configuration.snapshotVersionName else Configuration.versionName
47+
4648
subprojects {
4749
// Configure Android projects with common SDK versions as soon as either plugin is applied
4850
pluginManager.withPlugin("com.android.library") {
@@ -104,4 +106,73 @@ subprojects {
104106
}
105107
}
106108

107-
apply(from = "${rootDir}/scripts/publish-root.gradle")
109+
subprojects {
110+
plugins.withId("com.vanniktech.maven.publish") {
111+
extensions.configure<MavenPublishBaseExtension> {
112+
publishToMavenCentral(automaticRelease = true)
113+
114+
pom {
115+
name.set("Stream Android Core")
116+
description.set("Stream Core official Android SDK")
117+
url.set("https://github.com/getstream/stream-core-android")
118+
119+
licenses {
120+
license {
121+
name.set("Stream License")
122+
url.set("https://github.com/GetStream/stream-core-android/blob/main/LICENSE")
123+
}
124+
}
125+
126+
developers {
127+
developer {
128+
id = "aleksandar-apostolov"
129+
name = "Aleksandar Apostolov"
130+
131+
}
132+
developer {
133+
id = "VelikovPetar"
134+
name = "Petar Velikov"
135+
136+
}
137+
developer {
138+
id = "andremion"
139+
name = "André Mion"
140+
141+
}
142+
developer {
143+
id = "rahul-lohra"
144+
name = "Rahul Kumar Lohra"
145+
146+
}
147+
developer {
148+
id = "gpunto"
149+
name = "Gianmarco David"
150+
151+
}
152+
}
153+
154+
scm {
155+
connection.set("scm:git:github.com/getstream/stream-core-android.git")
156+
developerConnection.set("scm:git:ssh://github.com/getstream/stream-core-android.git")
157+
url.set("https://github.com/getstream/stream-core-android/tree/main")
158+
}
159+
}
160+
}
161+
}
162+
}
163+
164+
tasks.register("printAllArtifacts") {
165+
group = "publishing"
166+
description = "Prints all artifacts that will be published"
167+
168+
doLast {
169+
subprojects.forEach { subproject ->
170+
subproject.plugins.withId("com.vanniktech.maven.publish") {
171+
subproject.extensions.findByType(PublishingExtension::class.java)
172+
?.publications
173+
?.filterIsInstance<MavenPublication>()
174+
?.forEach { println("${it.groupId}:${it.artifactId}:${it.version}") }
175+
}
176+
}
177+
}
178+
}

gradle/libs.versions.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ spotless = "7.2.1"
2929
streamConventions = "0.2.0"
3030
kover = "0.9.1"
3131
sonarqube = "6.0.1.5171"
32+
mavenPublish = "0.34.0"
3233
kotlinDokka = "1.9.20"
33-
nexusPlugin = "1.3.0"
3434
annotationJvm = "1.9.1"
3535

3636
[libraries]
@@ -83,7 +83,7 @@ spotless = { id = "com.diffplug.spotless", version.ref = "spotless" }
8383
stream-android-library = { id = "io.getstream.android.library", version.ref = "streamConventions" }
8484
stream-android-application = { id = "io.getstream.android.application", version.ref = "streamConventions" }
8585
stream-java-library = { id = "io.getstream.java.library", version.ref = "streamConventions" }
86+
maven-publish = { id = "com.vanniktech.maven.publish", version.ref = "mavenPublish" }
8687
dokka = { id = "org.jetbrains.dokka", version.ref = "kotlinDokka" }
87-
nexus = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexusPlugin" }
8888
kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover"}
8989
sonarqube = { id = "org.sonarqube", version.ref = "sonarqube"}

scripts/publish-module.gradle

Lines changed: 0 additions & 111 deletions
This file was deleted.

scripts/publish-root.gradle

Lines changed: 0 additions & 67 deletions
This file was deleted.
Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,24 @@
1+
import com.vanniktech.maven.publish.JavadocJar
2+
import com.vanniktech.maven.publish.KotlinJvm
3+
import io.getstream.core.Configuration
4+
15
plugins {
26
alias(libs.plugins.stream.java.library)
37
alias(libs.plugins.jetbrains.kotlin.jvm)
8+
alias(libs.plugins.maven.publish)
9+
alias(libs.plugins.dokka)
410
}
511

6-
rootProject.extra.apply {
7-
set("PUBLISH_GROUP_ID", io.getstream.core.Configuration.artifactGroup)
8-
set("PUBLISH_ARTIFACT_ID", "stream-android-core-annotations")
9-
set("PUBLISH_VERSION", rootProject.extra.get("rootVersionName"))
10-
}
11-
12-
apply(from = "${rootDir}/scripts/publish-module.gradle")
13-
14-
java {
15-
withSourcesJar()
12+
mavenPublishing {
13+
coordinates(
14+
groupId = Configuration.artifactGroup,
15+
artifactId = "stream-android-core-annotations",
16+
version = rootProject.version.toString()
17+
)
18+
configure(
19+
KotlinJvm(
20+
javadocJar = JavadocJar.Dokka("dokkaJavadoc"),
21+
sourcesJar = true,
22+
)
23+
)
1624
}

0 commit comments

Comments
 (0)