Skip to content

Commit b2656a5

Browse files
committed
Configure maven central publishing
Signed-off-by: Appu Goundan <[email protected]>
1 parent 331ac9f commit b2656a5

File tree

5 files changed

+46
-13
lines changed

5 files changed

+46
-13
lines changed

.github/workflows/release-sigstore-java-from-tag.yaml

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,29 @@ jobs:
5757
- name: Setup Gradle
5858
uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1
5959

60+
- name: Authenticate to Google Cloud
61+
uses: google-github-actions/auth@6fc4af4b145ae7821d527454aa9bd537d1f2dc5f # v0.8.1
62+
with:
63+
workload_identity_provider: projects/306323169285/locations/global/workloadIdentityPools/github-actions-pool/providers/github-actions-provider
64+
service_account: [email protected]
65+
66+
- uses: google-github-actions/get-secretmanager-secrets@a8440875e1c2892062aef9061228d4f1af8f919b # v2.2.3
67+
id: secrets
68+
with:
69+
secrets: |-
70+
signing_key:sigstore-secrets/sigstore-java-pgp-priv-key
71+
signing_password:sigstore-secrets/sigstore-java-pgp-priv-key-password
72+
sonatype_username:sigstore-secrets/sigstore-sonatype-central-portal-username
73+
sonatype_password:sigstore-secrets/sigstore-sonatype-central-portal-password
74+
6075
- name: Build, Sign and Release to Maven Central
61-
run: |
62-
./gradlew clean :sigstore-java:publishMavenJavaPublicationToSonatypeRepository :sigstore-maven-plugin:publishMavenJavaPublicationToSonatypeRepository -Prelease
6376
env:
64-
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.PGP_PRIVATE_KEY }}
65-
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.PGP_PASSPHRASE }}
66-
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USERNAME }}
67-
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }}
77+
ORG_GRADLE_PROJECT_signingKey: ${{ steps.secrets.outputs.signing_key }}
78+
ORG_GRADLE_PROJECT_signingPassword: ${{ steps.secrets.outputs.signing_password }}
79+
CENTRAL_PORTAL_USERNAME: ${{ steps.secrets.outputs.sonatype_username }}
80+
CENTRAL_PORTAL_PASSWORD: ${{ steps.secrets.outputs.sonatype_password }}
81+
run: |
82+
./gradlew clean :publishAggregationToCentralPortal -Prelease
6883
6984
create-release-on-github:
7085
runs-on: ubuntu-latest

build-logic/publishing/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,5 @@ dependencies {
1313
implementation("dev.sigstore.build-logic:gradle-plugin")
1414
implementation("dev.sigstore:sigstore-gradle-sign-plugin:1.3.0")
1515
implementation("com.gradle.plugin-publish:com.gradle.plugin-publish.gradle.plugin:1.3.1")
16+
implementation("com.gradleup.nmcp:com.gradleup.nmcp.gradle.plugin:1.0.2")
1617
}

build-logic/publishing/src/main/kotlin/build-logic.publish-to-central.gradle.kts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
plugins {
22
id("java-library")
33
id("maven-publish")
4+
id("com.gradleup.nmcp")
45
id("build-logic.publish-to-tmp-maven-repo")
56
}
67

@@ -59,11 +60,4 @@ publishing {
5960
}
6061
}
6162
}
62-
repositories {
63-
maven {
64-
name = "sonatype"
65-
url = uri("https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/")
66-
credentials(PasswordCredentials::class)
67-
}
68-
}
6963
}

build.gradle.kts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
plugins {
22
id("build-logic.root-build")
3+
id("com.gradleup.nmcp.aggregation") version "1.0.2"
34
// The Kotlin Gradle plugin was loaded multiple times in different subprojects, which is not supported and may break the build.
45
`embedded-kotlin` apply false
56
}
@@ -15,3 +16,17 @@ val parameters by tasks.registering {
1516
description = "Displays build parameters (i.e. -P flags) that can be used to customize the build"
1617
dependsOn(gradle.includedBuild("build-logic").task(":build-parameters:parameters"))
1718
}
19+
20+
nmcpAggregation {
21+
centralPortal {
22+
username = providers.environmentVariable("CENTRAL_PORTAL_USERNAME")
23+
password = providers.environmentVariable("CENTRAL_PORTAL_PASSWORD")
24+
publishingType = "USER_MANAGED"
25+
publicationName = "sigstore protobuf-specs $version"
26+
}
27+
}
28+
29+
dependencies {
30+
nmcpAggregation(project(":sigstore-java"))
31+
nmcpAggregation(project(":sigstore-maven-plugin"))
32+
}

sigstore-java/src/main/java/dev/sigstore/oidc/client/WebOidcClient.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import dev.sigstore.http.HttpParams;
3838
import dev.sigstore.trustroot.Service;
3939
import java.io.IOException;
40+
import java.net.URI;
4041
import java.util.Arrays;
4142
import java.util.Locale;
4243
import java.util.Map;
@@ -96,6 +97,13 @@ public Builder setIssuer(Service issuer) {
9697
return this;
9798
}
9899

100+
/** Deprecated compat issuer selector, remove in next version. */
101+
@Deprecated
102+
public Builder setIssuer(String issuer) {
103+
this.issuer = Service.of(URI.create(issuer), 1);
104+
return this;
105+
}
106+
99107
/**
100108
* Alternative to default browser behavior, only use if you truly need to open with some sort of
101109
* custom browser, like in test or headless environments.

0 commit comments

Comments
 (0)