Skip to content

Commit 0618f07

Browse files
committed
Use Vanniktech Maven Publish
1 parent 48bbb3f commit 0618f07

3 files changed

Lines changed: 39 additions & 69 deletions

File tree

.github/workflows/release-maven.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,23 @@ jobs:
1717
- uses: DeterminateSystems/magic-nix-cache-action@v13
1818
- name: Publish snapshot ${{ github.ref }}
1919
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
20-
run: nix develop --command gradle --no-daemon publishToSonatype
20+
run: nix develop --command gradle --no-daemon publishToMavenCentral
2121
env:
22-
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}
23-
PGP_SECRET: ${{ secrets.PGP_SECRET }}
24-
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
25-
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
22+
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_PASSWORD }}
23+
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_USERNAME }}
24+
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.PGP_SECRET }}
25+
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.PGP_PASSPHRASE }}
2626
- name: Publish release ${{ github.ref }}
2727
if: ${{ startsWith(github.ref, 'refs/tags/') }}
2828
run: |
2929
version="${GITHUB_REF_NAME#v}"
3030
nix develop --command env VERSION="$version" \
31-
gradle --no-daemon publishToSonatype closeAndReleaseSonatypeStagingRepository
31+
gradle --no-daemon publishAndReleaseToMavenCentral
3232
env:
33-
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}
34-
PGP_SECRET: ${{ secrets.PGP_SECRET }}
35-
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
36-
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
33+
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_PASSWORD }}
34+
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_USERNAME }}
35+
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.PGP_SECRET }}
36+
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.PGP_PASSPHRASE }}
3737

3838
release-cli:
3939
if: ${{ startsWith(github.ref, 'refs/tags/') }}

build.gradle.kts

Lines changed: 27 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
22
import com.google.protobuf.gradle.ProtobufExtension
33
import com.google.protobuf.gradle.proto
4+
import com.vanniktech.maven.publish.MavenPublishBaseExtension
45
import org.gradle.api.JavaVersion
56
import org.gradle.api.distribution.DistributionContainer
67
import org.gradle.api.plugins.JavaApplication
78
import org.gradle.api.plugins.JavaPlugin
89
import org.gradle.api.plugins.JavaPluginExtension
9-
import org.gradle.api.publish.PublishingExtension
10-
import org.gradle.api.publish.maven.MavenPublication
1110
import org.gradle.api.tasks.JavaExec
1211
import org.gradle.api.tasks.SourceSetContainer
1312
import org.gradle.api.tasks.Sync
@@ -16,15 +15,14 @@ import org.gradle.api.tasks.javadoc.Javadoc
1615
import org.gradle.api.tasks.testing.Test
1716
import org.gradle.external.javadoc.StandardJavadocDocletOptions
1817
import org.gradle.language.jvm.tasks.ProcessResources
19-
import org.gradle.plugins.signing.SigningExtension
2018
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
2119
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
2220

2321
plugins {
24-
id("io.github.gradle-nexus.publish-plugin") version "2.0.0"
2522
alias(libs.plugins.kotlin.jvm) apply false
2623
alias(libs.plugins.protobuf) apply false
2724
alias(libs.plugins.shadow) apply false
25+
alias(libs.plugins.vanniktech.maven.publish) apply false
2826
}
2927

3028
val computedVersion =
@@ -54,8 +52,6 @@ val javacTestJvmOptions = javacModuleOptions.map { it.removePrefix("-J") }
5452
val catalog = libs
5553
val protobufVersion = catalog.versions.protobuf.asProvider().get()
5654
val repositoryUrl = "https://github.com/sourcegraph/scip-java"
57-
val signingKey = providers.environmentVariable("PGP_SECRET")
58-
val signingPassword = providers.environmentVariable("PGP_PASSPHRASE")
5955

6056
allprojects {
6157
group = rootProject.group
@@ -102,61 +98,33 @@ subprojects {
10298
}
10399

104100
fun Project.configureMavenPublishing() {
105-
apply(plugin = "maven-publish")
106-
apply(plugin = "signing")
107-
108-
extensions.configure<JavaPluginExtension> {
109-
withSourcesJar()
110-
withJavadocJar()
111-
}
112-
113-
extensions.configure<PublishingExtension> {
114-
publications {
115-
create<MavenPublication>("mavenJava") {
116-
from(components["java"])
117-
pom {
118-
name.set(project.name)
119-
description.set(project.description ?: project.name)
120-
url.set(repositoryUrl)
121-
licenses {
122-
license {
123-
name.set("Apache-2.0")
124-
url.set("http://www.apache.org/licenses/LICENSE-2.0")
125-
}
126-
}
127-
developers {
128-
developer {
129-
id.set("sourcegraph")
130-
name.set("Sourcegraph")
131-
}
132-
}
133-
scm {
134-
connection.set("scm:git:$repositoryUrl.git")
135-
developerConnection.set("scm:git:ssh://git@github.com/sourcegraph/scip-java.git")
136-
url.set(repositoryUrl)
137-
}
101+
apply(plugin = "com.vanniktech.maven.publish")
102+
103+
extensions.configure<MavenPublishBaseExtension>("mavenPublishing") {
104+
publishToMavenCentral()
105+
signAllPublications()
106+
107+
pom {
108+
name.set(project.name)
109+
description.set(project.description ?: project.name)
110+
url.set(repositoryUrl)
111+
licenses {
112+
license {
113+
name.set("Apache-2.0")
114+
url.set("http://www.apache.org/licenses/LICENSE-2.0")
138115
}
139116
}
140-
}
141-
}
142-
143-
val publishing = extensions.getByType<PublishingExtension>()
144-
extensions.configure<SigningExtension> {
145-
isRequired = signingKey.isPresent && !project.version.toString().endsWith("SNAPSHOT")
146-
if (signingKey.isPresent) {
147-
useInMemoryPgpKeys(signingKey.get(), signingPassword.orNull)
148-
sign(publishing.publications)
149-
}
150-
}
151-
}
152-
153-
nexusPublishing {
154-
repositories {
155-
sonatype {
156-
username.set(providers.environmentVariable("SONATYPE_USERNAME"))
157-
password.set(providers.environmentVariable("SONATYPE_PASSWORD"))
158-
nexusUrl.set(uri("https://s01.oss.sonatype.org/service/local/"))
159-
snapshotRepositoryUrl.set(uri("https://s01.oss.sonatype.org/content/repositories/snapshots/"))
117+
developers {
118+
developer {
119+
id.set("sourcegraph")
120+
name.set("Sourcegraph")
121+
}
122+
}
123+
scm {
124+
connection.set("scm:git:$repositoryUrl.git")
125+
developerConnection.set("scm:git:ssh://git@github.com/sourcegraph/scip-java.git")
126+
url.set(repositoryUrl)
127+
}
160128
}
161129
}
162130
}

gradle/libs.versions.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ protobuf = "4.34.2"
1515
protobuf-plugin = "0.9.4"
1616
scip-bindings = "0.8.0"
1717
shadow = "8.1.1"
18+
vanniktech-maven-publish = "0.35.0"
1819

1920
[libraries]
2021
clikt-jvm = { module = "com.github.ajalt.clikt:clikt-jvm", version.ref = "clikt" }
@@ -46,3 +47,4 @@ scip-kotlin-bindings = { module = "org.scip-code:scip-kotlin-bindings", version.
4647
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
4748
protobuf = { id = "com.google.protobuf", version.ref = "protobuf-plugin" }
4849
shadow = { id = "com.github.johnrengelman.shadow", version.ref = "shadow" }
50+
vanniktech-maven-publish = { id = "com.vanniktech.maven.publish", version.ref = "vanniktech-maven-publish" }

0 commit comments

Comments
 (0)