Skip to content

Commit 3ddc4a4

Browse files
committed
updated public key
1 parent 38740e8 commit 3ddc4a4

3 files changed

Lines changed: 108 additions & 20 deletions

File tree

.github/workflows/publish.yml

Lines changed: 54 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -34,38 +34,62 @@ jobs:
3434
env:
3535
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
3636
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
37-
GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }}
3837
run: |
3938
mkdir -p ~/.gnupg
4039
chmod 700 ~/.gnupg
41-
echo "$GPG_PRIVATE_KEY" | gpg --batch --import
4240
echo "pinentry-mode loopback" > ~/.gnupg/gpg.conf
4341
chmod 600 ~/.gnupg/gpg.conf
42+
43+
# Import the private key
44+
echo "Importing GPG private key..."
45+
echo "$GPG_PRIVATE_KEY" | gpg --batch --import
46+
4447
# List keys for debugging
45-
echo "=== GPG Keys ==="
48+
echo "=== GPG Keys After Import ==="
4649
gpg --list-secret-keys --keyid-format LONG
47-
# Try to extract key ID, or use secret if provided
48-
if [ -n "$GPG_KEY_ID" ]; then
49-
KEY_ID="$GPG_KEY_ID"
50-
echo "Using GPG_KEY_ID from secrets: $KEY_ID"
51-
else
52-
# Extract key ID from keyring
50+
51+
# Extract key ID from the imported key (always extract, don't use secret)
52+
# Try multiple methods to extract the key ID
53+
KEY_ID=$(gpg --list-secret-keys --keyid-format LONG 2>/dev/null | grep -E "^sec" | head -1 | sed -n 's/.*\/\([A-F0-9]\{16\}\).*/\1/p')
54+
55+
if [ -z "$KEY_ID" ]; then
56+
# Fallback: try with different format
5357
KEY_ID=$(gpg --list-secret-keys --keyid-format LONG 2>/dev/null | grep -E "^sec" | head -1 | awk -F'/' '{print $2}' | awk '{print $1}')
54-
if [ -z "$KEY_ID" ]; then
55-
# Fallback: try with pub
56-
KEY_ID=$(gpg --list-secret-keys --keyid-format LONG 2>/dev/null | grep -E "^pub" | head -1 | awk -F'/' '{print $2}' | awk '{print $1}')
57-
fi
5858
fi
59+
5960
if [ -z "$KEY_ID" ]; then
60-
echo "ERROR: Could not extract GPG key ID"
61-
echo "Please set GPG_KEY_ID secret or ensure key is properly imported"
61+
# Last resort: try with pub
62+
KEY_ID=$(gpg --list-secret-keys --keyid-format LONG 2>/dev/null | grep -E "^pub" | head -1 | sed -n 's/.*\/\([A-F0-9]\{16\}\).*/\1/p')
63+
fi
64+
65+
if [ -z "$KEY_ID" ]; then
66+
echo "ERROR: Could not extract GPG key ID from imported key"
67+
echo "=== Full key listing ==="
6268
gpg --list-secret-keys --keyid-format LONG
69+
echo "=== Full key listing (SHORT format) ==="
70+
gpg --list-secret-keys --keyid-format SHORT
6371
exit 1
6472
fi
65-
echo "key_id=$KEY_ID" >> $GITHUB_OUTPUT
66-
echo "GPG Key ID: $KEY_ID"
73+
74+
echo "Extracted GPG Key ID: $KEY_ID"
75+
76+
# Verify the key exists
77+
if ! gpg --list-secret-keys --keyid-format LONG | grep -q "$KEY_ID"; then
78+
echo "ERROR: Extracted key ID $KEY_ID not found in keyring"
79+
echo "=== Full key listing ==="
80+
gpg --list-secret-keys --keyid-format LONG
81+
exit 1
82+
fi
83+
6784
# Trust the imported key (ultimate trust)
85+
echo "Trusting key $KEY_ID..."
6886
echo "$KEY_ID:6:" | gpg --import-ownertrust || true
87+
88+
# Verify trust
89+
gpg --check-trustdb || true
90+
91+
echo "key_id=$KEY_ID" >> $GITHUB_OUTPUT
92+
echo "✅ GPG Key ID configured: $KEY_ID"
6993
7094
- name: Extract version from tag
7195
id: get_version
@@ -105,13 +129,24 @@ jobs:
105129
gpg --list-secret-keys --keyid-format LONG
106130
exit 1
107131
fi
132+
108133
echo "Using GPG Key ID: $KEY_ID"
109-
# Verify key exists
110-
if ! gpg --list-secret-keys --keyid-format LONG | grep -q "$KEY_ID"; then
134+
135+
# Final verification: key must exist
136+
if ! gpg --list-secret-keys --keyid-format LONG 2>/dev/null | grep -q "$KEY_ID"; then
111137
echo "ERROR: Key $KEY_ID not found in keyring"
138+
echo "=== Available keys ==="
112139
gpg --list-secret-keys --keyid-format LONG
113140
exit 1
114141
fi
142+
143+
# Test signing with the key
144+
echo "Testing GPG signing..."
145+
echo "test" | gpg --batch --yes --pinentry-mode loopback --sign --local-user "$KEY_ID" --output /dev/null 2>&1 || {
146+
echo "WARNING: GPG signing test failed, but continuing..."
147+
}
148+
149+
echo "Publishing to Maven Central..."
115150
mvn clean deploy -P release \
116151
-Dgpg.keyname="$KEY_ID" \
117152
-Dgpg.passphrase="$GPG_PASSPHRASE" \

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ target/
77
*.swp
88
*.swo
99
*~
10-
MAVEN_CENTRAL_SETUP.md
10+
MAVEN_CENTRAL_SETUP.md
11+
GPG_SETUP.md

gpg-public-key.asc

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
-----BEGIN PGP PUBLIC KEY BLOCK-----
2+
3+
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
50+
Gtdv8oGxaQ==
51+
=RbY3
52+
-----END PGP PUBLIC KEY BLOCK-----

0 commit comments

Comments
 (0)