build(tunnel): update publishing setup for OSSRH deprecation

The newly added zipReleasePublication task will generate a ZIP file at tunnel/build/distributions/tunnel-$VERSION-maven.zip
that can be uploaded to https://central.sonatype.com/publishing.

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Harsh Shandilya
2025-10-20 18:22:36 +02:00
committed by Jason A. Donenfeld
parent f0b45d50f3
commit 9438b9d7f4
+20 -6
View File
@@ -1,6 +1,7 @@
@file:Suppress("UnstableApiUsage") @file:Suppress("UnstableApiUsage")
import org.gradle.api.tasks.testing.logging.TestLogEvent import org.gradle.api.tasks.testing.logging.TestLogEvent
import org.gradle.api.tasks.bundling.Zip
val pkg: String = providers.gradleProperty("wireguardPackageName").get() val pkg: String = providers.gradleProperty("wireguardPackageName").get()
@@ -113,16 +114,29 @@ publishing {
} }
repositories { repositories {
maven { maven {
name = "sonatype" name = "SonatypeUpload"
url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/") setUrl(layout.buildDirectory.dir("sonatype"))
credentials {
username = providers.environmentVariable("SONATYPE_USER").orNull
password = providers.environmentVariable("SONATYPE_PASSWORD").orNull
}
} }
} }
} }
val releasePublication = publishing.publications.named("release").get() as MavenPublication
val mavenGroupPath = releasePublication.groupId.replace('.', '/')
val mavenArtifactId = releasePublication.artifactId
val mavenVersion = releasePublication.version
tasks.register<Zip>("zipReleasePublication") {
dependsOn(tasks.named("publishReleasePublicationToSonatypeUploadRepository"))
group = "distribution"
description = "Zips the release publication in Maven repository layout."
val sourceDir = layout.buildDirectory.dir("sonatype/${mavenGroupPath}/${mavenArtifactId}/${mavenVersion}")
from(sourceDir)
archiveFileName.set("${mavenArtifactId}-${mavenVersion}-maven.zip")
destinationDirectory.set(layout.buildDirectory.dir("distributions"))
into("${mavenGroupPath}/${mavenArtifactId}/${mavenVersion}")
}
signing { signing {
useGpgCmd() useGpgCmd()
sign(publishing.publications) sign(publishing.publications)