Skip to content

Commit e6bd9f6

Browse files
Switch Maven Central publishing to the Central Portal (#154)
2 parents 5c63502 + b8dc0d8 commit e6bd9f6

7 files changed

Lines changed: 42 additions & 25 deletions

File tree

.github/workflows/continuous-integration.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
- uses: actions/setup-java@dd06d9cba3e5552c54d9f8ea23572deb30010f7c
1818
with:
1919
distribution: temurin
20-
java-version: 11
20+
java-version: 17
2121
- name: 'Build cache'
2222
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9
2323
with:

.github/workflows/periodic-integration.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
- uses: actions/setup-java@dd06d9cba3e5552c54d9f8ea23572deb30010f7c
1919
with:
2020
distribution: temurin
21-
java-version: 11
21+
java-version: 17
2222
- name: 'Integration tests'
2323
run: |
2424
./gradlew integrationTest

.github/workflows/publication.yml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
- uses: actions/setup-java@dd06d9cba3e5552c54d9f8ea23572deb30010f7c
2424
with:
2525
distribution: temurin
26-
java-version: 11
26+
java-version: 17
2727
- name: 'Gradle'
2828
run: |
2929
echo 'org.gradle.caching=false' >> gradle.properties
@@ -63,23 +63,22 @@ jobs:
6363
- uses: actions/setup-java@dd06d9cba3e5552c54d9f8ea23572deb30010f7c
6464
with:
6565
distribution: temurin
66-
java-version: 11
66+
java-version: 17
6767
- name: 'Gradle'
6868
run: |
6969
echo 'org.gradle.caching=false' >> gradle.properties
7070
echo 'org.gradle.configuration-cache=false' >> gradle.properties
71-
- name: 'Publish release to Maven Central'
71+
- name: 'Publish release to Central Portal'
7272
env:
7373
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.GPG_KEY }}
7474
ORG_GRADLE_PROJECT_signingKeyId: ${{ secrets.GPG_KEY_ID }}
7575
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.GPG_KEY_PASSPHRASE }}
76-
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.OSSRH_USER_TOKEN_PASSWORD }}
77-
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.OSSRH_USER_TOKEN_USERNAME }}
76+
ORG_GRADLE_PROJECT_centralPortalPassword: ${{ secrets.CENTRAL_PORTAL_PASSWORD }}
77+
ORG_GRADLE_PROJECT_centralPortalUsername: ${{ secrets.CENTRAL_PORTAL_USERNAME }}
7878
run: |
7979
./gradlew \
8080
-Prelease \
81-
publishMainPublicationToSonatypeRepository \
82-
closeAndReleaseSonatypeStagingRepository
81+
publishAggregationToCentralPortal
8382
- name: 'Tear down'
8483
if: always()
8584
run: |

.github/workflows/publish-documentation.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
- uses: actions/setup-java@v6
2828
with:
2929
distribution: temurin
30-
java-version: 11
30+
java-version: 17
3131
- uses: actions/setup-python@v7
3232
with:
3333
python-version: 3.8

build.gradle.kts

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -48,22 +48,18 @@ plugins {
4848
alias(libs.plugins.ktlint)
4949
alias(libs.plugins.dependencyCheck) apply false
5050
alias(libs.plugins.ideaExt)
51-
alias(libs.plugins.nexus.publish)
51+
alias(libs.plugins.nmcp)
5252
}
5353

5454
logger.quiet("Group: {}; Version: {}", group, version)
5555

56-
nexusPublishing {
57-
repositories {
58-
// See: https://central.sonatype.org/publish/publish-portal-ossrh-staging-api/
59-
sonatype {
60-
nexusUrl.set(uri("https://ossrh-staging-api.central.sonatype.com/service/local/"))
61-
snapshotRepositoryUrl.set(uri("https://central.sonatype.com/repository/maven-snapshots/"))
62-
}
63-
}
64-
transitionCheckOptions {
65-
maxRetries.set(180)
66-
delayBetween.set(Duration.ofSeconds(10L))
56+
nmcpAggregation {
57+
centralPortal {
58+
username.set(providers.gradleProperty("centralPortalUsername"))
59+
password.set(providers.gradleProperty("centralPortalPassword"))
60+
publishingType.set("AUTOMATIC")
61+
validationTimeout.set(Duration.ofMinutes(30L))
62+
publishingTimeout.set(Duration.ofMinutes(30L))
6763
}
6864
}
6965

@@ -78,16 +74,35 @@ dependencies {
7874
kover(projects.pushikoMetrics)
7975
kover(projects.pushikoNettyKtx)
8076
kover(projects.pushikoPools)
77+
78+
listOf(
79+
projects.pushikoApi,
80+
projects.pushikoApns,
81+
projects.pushikoCommons,
82+
projects.pushikoFcm,
83+
projects.pushikoHealth,
84+
projects.pushikoHttp,
85+
projects.pushikoJson,
86+
projects.pushikoMetrics,
87+
projects.pushikoNettyKtx,
88+
projects.pushikoPools
89+
).forEach {
90+
add("nmcpAggregation", it)
91+
}
8192
}
8293

8394
subprojects {
8495
group = rootProject.group
96+
plugins.withId("maven-publish") {
97+
pluginManager.apply("com.gradleup.nmcp")
98+
}
8599
apply {
86100
plugin("org.jlleitschuh.gradle.ktlint")
87101
plugin("org.owasp.dependencycheck")
88102
}
89103
plugins.withType<JavaPlugin>().configureEach {
90104
configure<JavaPluginExtension> {
105+
sourceCompatibility = JavaVersion.VERSION_11
91106
withSourcesJar()
92107
}
93108
dependencies {
@@ -134,7 +149,10 @@ subprojects {
134149
).forEach {
135150
systemProperty(it.key, it.value)
136151
}
137-
jvmArgs("-Dio.netty.leakDetection.level=paranoid")
152+
jvmArgs(
153+
"-Dio.netty.leakDetection.level=paranoid",
154+
"--add-exports=java.base/sun.security.x509=ALL-UNNAMED"
155+
)
138156
}
139157
plugins.withType<PitestPlugin> {
140158
configure<PitestPluginExtension> {
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
toolchainVersion=11
1+
toolchainVersion=17

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,6 @@ dokka = { id = "org.jetbrains.dokka", version = "1.9.20" }
5757
ideaExt = { id = "org.jetbrains.gradle.plugin.idea-ext", version = "1.4.1" }
5858
kover = { id = "org.jetbrains.kotlinx.kover", version = "0.7.6" }
5959
ktlint = { id = "org.jlleitschuh.gradle.ktlint", version = "11.0.0" }
60-
nexus-publish = { id = "io.github.gradle-nexus.publish-plugin", version = "2.0.0" }
60+
nmcp = { id = "com.gradleup.nmcp.aggregation", version = "1.6.2" }
6161
pitest = { id = "info.solidsoft.pitest", version = "1.15.0" }
6262
serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }

0 commit comments

Comments
 (0)