1
- name : Test Publish Dummy Package to GitHub Packages
1
+ name : Test Publish Dummy Package to Maven Central
2
2
3
3
on :
4
4
workflow_dispatch :
5
5
6
6
jobs :
7
7
publish-dummy :
8
8
runs-on : ubuntu-latest
9
- permissions :
10
- contents : read
11
- packages : write
12
9
13
10
steps :
14
11
- uses : actions/checkout@v4
22
19
- name : Setup Gradle
23
20
uses : gradle/actions/setup-gradle@v3
24
21
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
+
25
28
- name : Create dummy project and initialize Gradle
26
29
run : |
27
30
mkdir -p src/main/java/org/peerdas/kzg
@@ -30,37 +33,99 @@ jobs:
30
33
echo "plugins {
31
34
id 'java'
32
35
id 'maven-publish'
36
+ id 'signing'
37
+ id 'org.jreleaser' version '1.8.0'
33
38
}
34
39
35
- group = 'org.peerdas.kzg '
40
+ group = 'io.github.kevaundray.dummy '
36
41
version = '0.0.1-SNAPSHOT'
37
42
43
+ java {
44
+ withJavadocJar()
45
+ withSourcesJar()
46
+ }
47
+
38
48
repositories {
39
49
mavenCentral()
40
50
}
41
51
42
52
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
+ }
50
78
}
51
79
}
52
80
}
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
+ }
56
104
}
57
105
}
58
106
}" > build.gradle
59
107
60
108
# Initialize Gradle wrapper
61
109
gradle wrapper
62
110
63
- - name : Publish dummy package
64
- run : ./gradlew publish
111
+ - name : Publish dummy package to Maven Central
65
112
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