Skip to content

Commit 4e259cf

Browse files
authored
misc: enable signing with JReleaser (#126)
1 parent c5a4550 commit 4e259cf

File tree

2 files changed

+38
-20
lines changed
  • .github/actions/jreleaser
  • build-plugins/build-support/src/main/kotlin/aws/sdk/kotlin/gradle/dsl

2 files changed

+38
-20
lines changed

.github/actions/jreleaser/action.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,33 @@ runs:
1919
export JRELEASER_MAVENCENTRAL_TOKEN="foo"
2020
export JRELEASER_GENERIC_TOKEN="foo"
2121
22+
export JRELEASER_GPG_PASSPHRASE="foo"
23+
export JRELEASER_GPG_PUBLIC_KEY="-----BEGIN PGP PUBLIC KEY BLOCK-----
24+
mDMEaL8nuRYJKwYBBAHaRw8BAQdAWL775FzgrwDmg7muKyddMoed4k/Xb/fYly/J
25+
/uDD2wy0BHRlc3SIkwQTFgoAOxYhBLcG5xXLamZFShYwTwukzlxOPrMDBQJovye5
26+
AhsDBQsJCAcCAiICBhUKCQgLAgQWAgMBAh4HAheAAAoJEAukzlxOPrMDAHsBAPC+
27+
eUMDlJlvQDLduN0+BGD75RENyayZONHT42H2+U+aAP9wwQBJfhCCEzY3GpeavFgz
28+
4IyWZf5Wh4m2/qKPpW10B7g4BGi/J7kSCisGAQQBl1UBBQEBB0AETG4BD1cgDqs1
29+
lfU9+R/ECvlY4AdiO8iqBUtuabtMZwMBCAeIeAQYFgoAIBYhBLcG5xXLamZFShYw
30+
TwukzlxOPrMDBQJovye5AhsMAAoJEAukzlxOPrMDuzkA/2WXh8Wikfpx6O4xoZf0
31+
2Faek9vBPZlTM7Caoeq4tSV4AQCYcg1P9BFghqhnwvrRZvdQQTx76umHLz8enbke
32+
OAHfDw==
33+
=/9s0
34+
-----END PGP PUBLIC KEY BLOCK-----"
35+
export JRELEASER_GPG_SECRET_KEY="-----BEGIN PGP PRIVATE KEY BLOCK-----
36+
lIYEaL8nuRYJKwYBBAHaRw8BAQdAWL775FzgrwDmg7muKyddMoed4k/Xb/fYly/J
37+
/uDD2wz+BwMCaLqUQm4ihML7jBPOkRNRNSycy2m45R0GXzH9c1M7ImKOxYfBxrcx
38+
xu+EAJ5eWvpr2//wZ+qHHXS0Rh8/SL9DoX+sFE9pRx6yJlDBO90mK7QEdGVzdIiT
39+
BBMWCgA7FiEEtwbnFctqZkVKFjBPC6TOXE4+swMFAmi/J7kCGwMFCwkIBwICIgIG
40+
FQoJCAsCBBYCAwECHgcCF4AACgkQC6TOXE4+swMAewEA8L55QwOUmW9AMt243T4E
41+
YPvlEQ3JrJk40dPjYfb5T5oA/3DBAEl+EIITNjcal5q8WDPgjJZl/laHibb+oo+l
42+
bXQHnIsEaL8nuRIKKwYBBAGXVQEFAQEHQARMbgEPVyAOqzWV9T35H8QK+VjgB2I7
43+
yKoFS25pu0xnAwEIB/4HAwKJuUDoPaqNo/ssfY0b1vWGopVJneFheLIOWAMjWeur
44+
8MjxaRS7IyFjPrm8p0W0/SSoKuGNdU390bwrKFmjmv5UfJrKGpJTiZZHt2awtvds
45+
iHgEGBYKACAWIQS3BucVy2pmRUoWME8LpM5cTj6zAwUCaL8nuQIbDAAKCRALpM5c
46+
Tj6zA7s5AP9ll4fFopH6cejuMaGX9NhWnpPbwT2ZUzOwmqHquLUleAEAmHINT/QR
47+
YIaoZ8L60Wb3UEE8e+rphy8/Hp25HjgB3w8=
48+
=Cn5U
49+
-----END PGP PRIVATE KEY BLOCK-----"
50+
2251
./gradlew jreleaserFullRelease --dryrun --stacktrace

build-plugins/build-support/src/main/kotlin/aws/sdk/kotlin/gradle/dsl/Publish.kt

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,7 @@ fun Project.configureNexusPublishing(repoName: String, githubOrganization: Strin
182182
}
183183

184184
/**
185-
* Configure publishing for this project. This applies the `maven-publish` and `signing` plugins and configures
186-
* the publications.
185+
* Configure publishing for this project. This applies the `maven-publish` plugin and configures publications.
187186
* @param repoName the repository name (e.g. `smithy-kotlin`, `aws-sdk-kotlin`, etc)
188187
* @param githubOrganization the name of the GitHub organization that [repoName] is located in
189188
*/
@@ -236,23 +235,6 @@ fun Project.configurePublishing(repoName: String, githubOrganization: String = "
236235
}
237236
}
238237
}
239-
240-
val secretKey = System.getenv(EnvironmentVariables.GPG_SECRET_KEY)
241-
val passphrase = System.getenv(EnvironmentVariables.GPG_PASSPHRASE)
242-
243-
if (!secretKey.isNullOrBlank() && !passphrase.isNullOrBlank()) {
244-
apply(plugin = "signing")
245-
extensions.configure<SigningExtension> {
246-
useInMemoryPgpKeys(secretKey, passphrase)
247-
sign(publications)
248-
}
249-
250-
// FIXME - workaround for https://github.com/gradle/gradle/issues/26091
251-
val signingTasks = tasks.withType<Sign>()
252-
tasks.withType<AbstractPublishToMaven>().configureEach {
253-
mustRunAfter(signingTasks)
254-
}
255-
}
256238
}
257239

258240
tasks.withType<AbstractPublishToMaven>().configureEach {
@@ -312,6 +294,9 @@ fun Project.configureJReleaser() {
312294
val requiredVariables = listOf(
313295
EnvironmentVariables.MAVEN_CENTRAL_USERNAME,
314296
EnvironmentVariables.MAVEN_CENTRAL_TOKEN,
297+
EnvironmentVariables.GPG_PASSPHRASE,
298+
EnvironmentVariables.GPG_PUBLIC_KEY,
299+
EnvironmentVariables.GPG_SECRET_KEY,
315300
EnvironmentVariables.GENERIC_TOKEN,
316301
)
317302

@@ -346,6 +331,11 @@ fun Project.configureJReleaser() {
346331
version = providers.gradleProperty("sdkVersion").get()
347332
}
348333

334+
signing {
335+
active = Active.ALWAYS
336+
armored = true
337+
}
338+
349339
// JReleaser requires a releaser to be configured even though we don't use it.
350340
// https://github.com/jreleaser/jreleaser/discussions/1725#discussioncomment-10674529
351341
release {
@@ -365,7 +355,6 @@ fun Project.configureJReleaser() {
365355
mavenCentral {
366356
create("maven-central") {
367357
active = Active.ALWAYS // the Maven deployer default is ALWAYS, but MavenCentral is NEVER
368-
sign = false // Signing is done when publishing, see the 'configurePublishing' function
369358
url = "https://central.sonatype.com/api/v1/publisher"
370359
stagingRepository(rootProject.layout.buildDirectory.dir("m2").get().toString())
371360
artifacts {

0 commit comments

Comments
 (0)