Skip to content

Commit 9f80b7a

Browse files
committed
use jreleaser and try to publish to maven central
1 parent f4f3bf1 commit 9f80b7a

File tree

1 file changed

+83
-18
lines changed

1 file changed

+83
-18
lines changed
+83-18
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
1-
name: Test Publish Dummy Package to GitHub Packages
1+
name: Test Publish Dummy Package to Maven Central
22

33
on:
44
workflow_dispatch:
55

66
jobs:
77
publish-dummy:
88
runs-on: ubuntu-latest
9-
permissions:
10-
contents: read
11-
packages: write
129

1310
steps:
1411
- uses: actions/checkout@v4
@@ -22,6 +19,12 @@ jobs:
2219
- name: Setup Gradle
2320
uses: gradle/actions/setup-gradle@v3
2421

22+
- name: Import GPG key
23+
uses: crazy-max/ghaction-import-gpg@v6
24+
with:
25+
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY_JAVA_PUBLISHING }}
26+
passphrase: ${{ secrets.GPG_PASSPHRASE_JAVA_PUBLISHING }}
27+
2528
- name: Create dummy project and initialize Gradle
2629
run: |
2730
mkdir -p src/main/java/org/peerdas/kzg
@@ -30,37 +33,99 @@ jobs:
3033
echo "plugins {
3134
id 'java'
3235
id 'maven-publish'
36+
id 'signing'
37+
id 'org.jreleaser' version '1.8.0'
3338
}
3439
35-
group = 'org.peerdas.kzg'
40+
group = 'io.github.kevaundray.dummy'
3641
version = '0.0.1-SNAPSHOT'
3742
43+
java {
44+
withJavadocJar()
45+
withSourcesJar()
46+
}
47+
3848
repositories {
3949
mavenCentral()
4050
}
4151
4252
publishing {
43-
repositories {
44-
maven {
45-
name = \"GitHubPackages\"
46-
url = uri(\"https://maven.pkg.github.com/crate-crypto/peerdas-kzg\")
47-
credentials {
48-
username = System.getenv(\"GITHUB_ACTOR\")
49-
password = System.getenv(\"GITHUB_TOKEN\")
53+
publications {
54+
mavenJava(MavenPublication) {
55+
from components.java
56+
pom {
57+
name = 'PeerDAS KZG Dummy Library'
58+
description = 'A dummy library for testing PeerDAS KZG operations publication'
59+
url = 'https://github.com/crate-crypto/peerdas-kzg'
60+
licenses {
61+
license {
62+
name = 'The Apache License, Version 2.0'
63+
url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
64+
}
65+
}
66+
developers {
67+
developer {
68+
id = 'kevthedev'
69+
name = 'Kev Wed'
70+
email = 'kev@the.dev'
71+
}
72+
}
73+
scm {
74+
connection = 'scm:git:git://github.com/crate-crypto/peerdas-kzg.git'
75+
developerConnection = 'scm:git:ssh://github.com:crate-crypto/peerdas-kzg.git'
76+
url = 'https://github.com/crate-crypto/peerdas-kzg'
77+
}
5078
}
5179
}
5280
}
53-
publications {
54-
gpr(MavenPublication) {
55-
from(components.java)
81+
}
82+
83+
signing {
84+
def signingKey = System.getenv('GPG_PRIVATE_KEY')
85+
def signingPassword = System.getenv('GPG_PASSPHRASE')
86+
useInMemoryPgpKeys(signingKey, signingPassword)
87+
sign publishing.publications.mavenJava
88+
}
89+
90+
jreleaser {
91+
signing {
92+
active = 'ALWAYS'
93+
armored = true
94+
}
95+
deploy {
96+
maven {
97+
mavenCentral {
98+
sonatype {
99+
active = 'ALWAYS'
100+
url = 'https://central.sonatype.com/api/v1/publisher'
101+
stagingRepository('target/staging-deploy')
102+
}
103+
}
56104
}
57105
}
58106
}" > build.gradle
59107
60108
# Initialize Gradle wrapper
61109
gradle wrapper
62110
63-
- name: Publish dummy package
64-
run: ./gradlew publish
111+
- name: Publish dummy package to Maven Central
65112
env:
66-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
113+
JRELEASER_NEXUS2_USERNAME: ${{ secrets.CENTRAL_PORTAL_TOKEN_USERNAME }}
114+
JRELEASER_NEXUS2_PASSWORD: ${{ secrets.CENTRAL_PORTAL_TOKEN_PASSWORD }}
115+
JRELEASER_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE_JAVA_PUBLISHING }}
116+
JRELEASER_GPG_SECRET_KEY: ${{ secrets.GPG_PRIVATE_KEY_JAVA_PUBLISHING }}
117+
JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.GPG_PUBLIC_KEY_JAVA_PUBLISHING }}
118+
JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
119+
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY_JAVA_PUBLISHING }}
120+
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE_JAVA_PUBLISHING }}
121+
run: |
122+
./gradlew jreleaserDeploy --release-repository=mavenCentral
123+
124+
- name: JReleaser output
125+
if: always()
126+
uses: actions/upload-artifact@v3
127+
with:
128+
name: jreleaser-logs
129+
path: |
130+
build/jreleaser/trace.log
131+
build/jreleaser/output.properties

0 commit comments

Comments
 (0)