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:
16
16
uses : ncipollo/release-action@v1
17
17
18
18
publish :
19
- runs-on : ubuntu-24.04
20
19
needs : release
21
-
22
20
permissions :
23
21
contents : read
24
22
packages : write
25
23
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 {
2
2
kotlin(" jvm" ) version " 2.0.21"
3
3
`java- library`
4
4
`maven- publish`
5
+ `signing`
5
6
}
6
7
7
- group = " org.quantum "
8
+ group = " io.github.dpbm "
8
9
version = " 1.0"
9
10
10
11
repositories {
11
- mavenCentral()
12
+ mavenCentral()
12
13
}
13
14
14
15
java {
@@ -84,17 +85,22 @@ publishing {
84
85
}
85
86
}
86
87
87
- /* maven{
88
+ maven{
88
89
name = " OSSRH"
89
90
url = uri(" https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/" )
90
91
credentials {
91
92
username = System .getenv(" OSSRH_USERNAME" )
92
93
password = System .getenv(" OSSRH_PASSWORD" )
93
94
}
94
- }*/
95
+ }
95
96
}
96
97
}
97
98
99
+ signing{
100
+ useInMemoryPgpKeys(System .getenv(" GPG_KEY" ), System .getenv(" GPG_KEY_PASSWORD" ))
101
+ sign(publishing.publications[" mavenJava" ])
102
+ }
103
+
98
104
99
105
tasks.javadoc {
100
106
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'
11
11
GREEN=' \033[0;32m'
12
12
13
13
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
+
15
17
GPG_CONF_PATH=" $GPG_DIR /gpg.conf"
16
18
GPG_CONF_AGENT_PATH=" $GPG_DIR /gpg-agent.conf"
17
- GPG_SECRING_FILE_PATH=" $GPG_DIR /secring.gpg"
18
19
19
20
echo -e " $GREEN installing dependencies...$RESET_COLOR "
20
21
sudo apt-get update && sudo apt-get install -y gnupg
@@ -45,4 +46,4 @@ echo -e "$GREEN import private key...$RESET_COLOR"
45
46
cat <( echo -e " $GPG_KEY " ) | gpg --batch --import
46
47
47
48
echo -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