File tree Expand file tree Collapse file tree 6 files changed +120
-24
lines changed Expand file tree Collapse file tree 6 files changed +120
-24
lines changed Original file line number Diff line number Diff line change 1+ name : (Test) Publish packages Setup
2+ on :
3+ push :
4+ branches :
5+ - ' test-actions'
6+ jobs :
7+ publish :
8+ uses : ./.github/workflows/publish.yml
9+ secrets :
10+ GPG_KEY : ${{ secrets.GPG_KEY }}
11+ GPG_PASSWORD : ${{ secrets.GPG_PASSWORD }}
12+ GPG_KEYID : ${{ secrets.GPG_KEYID }}
Original file line number Diff line number Diff line change 1+ name : (Reusable Workflow) Publish packages
2+ on :
3+ workflow_call :
4+ inputs :
5+ env :
6+ type : string
7+ description : ' Set as production to publish your artifacts'
8+ default : ' test'
9+ secrets :
10+ GPG_KEY :
11+ description : ' Your private GPG KEY'
12+ required : true
13+ GPG_PASSWORD :
14+ description : ' Your GPG KEY passphrase'
15+ required : true
16+ GPG_KEYID :
17+ description : ' Your GPG KEY last 8 digits'
18+ required : true
19+ OSSRH_USERNAME :
20+ description : ' Your Maven Central Key Username'
21+ required : true
22+ OSSRH_PASSWORD :
23+ description : ' Your Maven Central Key password'
24+ required : true
25+ env :
26+ GPG_DIR : ~/.gnupg
27+ GPG_SECRING_FILE_PATH : $GPG_DIR/secring.gpg
28+
29+ jobs :
30+ publish :
31+ runs-on : ubuntu-24.04
32+
33+ steps :
34+ - uses : actions/checkout@v4
35+
36+ - uses : actions/setup-java@v4
37+ with :
38+ java-version : ' 21'
39+ distribution : ' temurin'
40+
41+ - name : setup key
42+ run : |
43+ chmod +x ./ci-utils/setup-gpg.sh
44+ ./ci-utils/setup-gpg.sh
45+ env :
46+ GPG_KEY : ${{ secrets.GPG_KEY }}
47+ GPG_PASSWORD : ${{ secrets.GPG_PASSWORD }}
48+
49+ - uses : gradle/actions/setup-gradle@v3
50+
51+ - name : Publish
52+ if : ${{ inputs.env == 'production' }}
53+ run : |
54+ export GPG_KEY=$(cat $GPG_SECRING_FILE_PATH)
55+ ./gradlew publish --info --stacktrace
56+ env :
57+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
58+ GITHUB_ACTOR : ${{ github.actor }}
59+ OSSRH_USERNAME : ${{ secrets.OSSRH_USERNAME }}
60+ GPG_KEY_PASSWORD : ${{ secrets.GPG_PASSWORD }}
Original file line number Diff line number Diff line change @@ -16,25 +16,17 @@ jobs:
1616 uses : ncipollo/release-action@v1
1717
1818 publish :
19- runs-on : ubuntu-24.04
2019 needs : release
21-
2220 permissions :
2321 contents : read
2422 packages : write
2523
26- steps :
27- - uses : actions/checkout@v4
28-
29- - uses : actions/setup-java@v4
30- with :
31- java-version : ' 21'
32- distribution : ' temurin'
33-
34- - uses : gradle/actions/setup-gradle@v3
35-
36- - name : Publish
37- run : ./gradlew publish --info --stacktrace
38- env :
39- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
40- GITHUB_ACTOR : ${{ github.actor }}
24+ uses : ./.github/workflows/publish.yml
25+ secrets :
26+ GPG_KEY : ${{ secrets.GPG_KEY }}
27+ GPG_PASSWORD : ${{ secrets.GPG_PASSWORD }}
28+ GPG_KEYID : ${{ secrets.GPG_KEYID }}
29+ OSSRH_USERNAME : ${{ secrets.OSSRH_USERNAME }}
30+ OSSRH_PASSWORD : ${{ secrets.OSSRH_PASSWORD }}
31+ with :
32+ env : ' production'
Original file line number Diff line number Diff line change @@ -2,13 +2,14 @@ plugins {
22 kotlin(" jvm" ) version " 2.0.21"
33 `java- library`
44 `maven- publish`
5+ `signing`
56}
67
7- group = " org.quantum "
8+ group = " io.github.dpbm "
89version = " 1.0"
910
1011repositories {
11- mavenCentral()
12+ mavenCentral()
1213}
1314
1415java {
@@ -84,17 +85,22 @@ publishing {
8485 }
8586 }
8687
87- /* maven{
88+ maven{
8889 name = " OSSRH"
8990 url = uri(" https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/" )
9091 credentials {
9192 username = System .getenv(" OSSRH_USERNAME" )
9293 password = System .getenv(" OSSRH_PASSWORD" )
9394 }
94- }*/
95+ }
9596 }
9697}
9798
99+ signing{
100+ useInMemoryPgpKeys(System .getenv(" GPG_KEY" ), System .getenv(" GPG_KEY_PASSWORD" ))
101+ sign(publishing.publications[" mavenJava" ])
102+ }
103+
98104
99105tasks.javadoc {
100106 if (JavaVersion .current().isJava9Compatible) {
Original file line number Diff line number Diff line change 1+ import sys
2+
3+ def get_key_string (key :str ) -> str :
4+ key_str = ''
5+ with open (key , 'r' ) as file :
6+ lines = file .readlines ()
7+ total_lines = len (lines )
8+
9+ for i ,line in enumerate (lines ):
10+ replace_char = '' if i == total_lines - 1 else '\\ n'
11+ key_str += line .replace ('\n ' , replace_char )
12+
13+ return key_str
14+
15+
16+ if __name__ == '__main__' :
17+ if (len (sys .argv ) != 2 ):
18+ print ("Invalid Usage!" )
19+ print ("Usage: python3 build_key.py PATH_TO_YOUR_GPG_KEY" )
20+ sys .exit (1 )
21+
22+ key = sys .argv [- 1 ]
23+
24+ print ("Your Parsed Key" )
25+ print (get_key_string (key ))
Original file line number Diff line number Diff line change @@ -11,10 +11,11 @@ RESET_COLOR='\033[0m'
1111GREEN=' \033[0;32m'
1212
1313
14- GPG_DIR=" $HOME /.gnupg"
14+ # GPG_DIR="$HOME/.gnupg" is set on the workflow
15+ # GPG_SECRING_FILE_PATH="$GPG_DIR/secring.gpg" is set on the workflow
16+
1517GPG_CONF_PATH=" $GPG_DIR /gpg.conf"
1618GPG_CONF_AGENT_PATH=" $GPG_DIR /gpg-agent.conf"
17- GPG_SECRING_FILE_PATH=" $GPG_DIR /secring.gpg"
1819
1920echo -e " $GREEN installing dependencies...$RESET_COLOR "
2021sudo apt-get update && sudo apt-get install -y gnupg
@@ -45,4 +46,4 @@ echo -e "$GREEN import private key...$RESET_COLOR"
4546cat <( echo -e " $GPG_KEY " ) | gpg --batch --import
4647
4748echo -e " $GREEN export private key to path...$RESET_COLOR "
48- gpg --batch --pinentry-mode=loopback --yes --passphrase " $GPG_PASSWORD " --export-secret-keys --output $GPG_SECRING_FILE_PATH
49+ gpg --batch --pinentry-mode=loopback --yes --passphrase " $GPG_PASSWORD " --export-secret-keys --armor -- output $GPG_SECRING_FILE_PATH
You can’t perform that action at this time.
0 commit comments