Skip to content

Commit 0002f41

Browse files
committed
Migrate to Sonatype Central Portal
1 parent 15f8ff1 commit 0002f41

File tree

8 files changed

+138
-213
lines changed

8 files changed

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

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: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,28 @@
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-
1412
java {
1513
withSourcesJar()
1614
}
15+
16+
mavenPublishing {
17+
coordinates(
18+
groupId = Configuration.artifactGroup,
19+
artifactId = "stream-android-core-annotations",
20+
version = project.rootProject.version.toString()
21+
)
22+
configure(
23+
KotlinJvm(
24+
javadocJar = JavadocJar.Dokka("dokkaJavadoc"),
25+
sourcesJar = true,
26+
)
27+
)
28+
}

0 commit comments

Comments
 (0)