Skip to content

Commit e77e837

Browse files
committed
Move the GPG import to the publish script
Signed-off-by: marko-bekhta <[email protected]>
1 parent 01eac76 commit e77e837

File tree

2 files changed

+61
-64
lines changed

2 files changed

+61
-64
lines changed

publish.sh

+61
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,67 @@ if [ -z "$DEVELOPMENT_VERSION" ]; then
7474
exit 1
7575
fi
7676

77+
#--------------------------------------------
78+
# Environment variables
79+
80+
if [ -z "$RELEASE_GPG_HOMEDIR" ]; then
81+
echo "ERROR: environment variable RELEASE_GPG_HOMEDIR is not set"
82+
exit 1
83+
fi
84+
if [ -z "$RELEASE_GPG_PRIVATE_KEY_PATH" ]; then
85+
echo "ERROR: environment variable RELEASE_GPG_PRIVATE_KEY_PATH is not set"
86+
exit 1
87+
fi
88+
89+
#--------------------------------------------
90+
# GPG
91+
92+
function gpg_import() {
93+
local privateKeyPath="$1"
94+
shift
95+
local keyId
96+
keyId=$(gpg "${@}" --batch --import "$privateKeyPath" 2>&1 | tee >(cat 1>&2) | grep 'key.*: secret key imported' | sed -E 's/.*key ([^:]+):.*/\1/')
97+
# output the fingerprint of the imported key
98+
gpg "${@}" --list-secret-keys --with-colon "$keyId" | sed -E '2!d;s/.*:([^:]+):$/\1/'
99+
}
100+
101+
function gpg_delete() {
102+
local fingerprint="$1"
103+
shift
104+
gpg "${@}" --batch --yes --delete-secret-keys "$fingerprint"
105+
}
106+
107+
#--------------------------------------------
108+
# Cleanup on exit
109+
110+
function cleanup() {
111+
if [ -n "$IMPORTED_KEY" ]; then
112+
echo "Deleting imported GPG private key..."
113+
gpg_delete "$IMPORTED_KEY" || true
114+
fi
115+
if [ -d "$RELEASE_GPG_HOMEDIR" ]; then
116+
echo "Cleaning up GPG homedir..."
117+
rm -rf "$RELEASE_GPG_HOMEDIR" || true
118+
echo "Clearing GPG agent..."
119+
gpg-connect-agent reloadagent /bye || true
120+
fi
121+
}
122+
123+
trap "cleanup" EXIT
124+
125+
#--------------------------------------------
126+
# Actual script
127+
128+
mkdir -p -m 700 "$RELEASE_GPG_HOMEDIR"
129+
export GNUPGHOME="$RELEASE_GPG_HOMEDIR"
130+
export JRELEASER_GPG_HOMEDIR="$RELEASE_GPG_HOMEDIR"
131+
IMPORTED_KEY="$(gpg_import "$RELEASE_GPG_PRIVATE_KEY_PATH")"
132+
if [ -z "$IMPORTED_KEY" ]; then
133+
echo "Failed to import GPG key"
134+
exit 1
135+
fi
136+
137+
77138
RELEASE_VERSION_FAMILY=$(echo "$RELEASE_VERSION" | sed -E 's/^([0-9]+\.[0-9]+).*/\1/')
78139

79140
if [ "$PROJECT" == "orm" ] || [ "$PROJECT" == "reactive" ] || [ "$PROJECT" == "models" ]; then

release.sh

-64
Original file line numberDiff line numberDiff line change
@@ -126,70 +126,6 @@ fi
126126
RELEASE_VERSION_BASIS=$(echo "$RELEASE_VERSION" | sed -E 's/^([0-9]+\.[0-9]+\.[0-9]+).*/\1/')
127127
NEXT_VERSION_BASIS=$(echo "$DEVELOPMENT_VERSION" | sed -E 's/^([0-9]+\.[0-9]+\.[0-9]+).*/\1/')
128128

129-
#--------------------------------------------
130-
# Environment variables
131-
132-
if [ -z "$RELEASE_GPG_HOMEDIR" ]; then
133-
echo "ERROR: environment variable RELEASE_GPG_HOMEDIR is not set"
134-
exit 1
135-
fi
136-
if [ -z "$RELEASE_GPG_PRIVATE_KEY_PATH" ]; then
137-
echo "ERROR: environment variable RELEASE_GPG_PRIVATE_KEY_PATH is not set"
138-
exit 1
139-
fi
140-
141-
#--------------------------------------------
142-
# GPG
143-
144-
function gpg_import() {
145-
local privateKeyPath="$1"
146-
shift
147-
local keyId
148-
keyId=$(gpg "${@}" --batch --import "$privateKeyPath" 2>&1 | tee >(cat 1>&2) | grep 'key.*: secret key imported' | sed -E 's/.*key ([^:]+):.*/\1/')
149-
# output the fingerprint of the imported key
150-
gpg "${@}" --list-secret-keys --with-colon "$keyId" | sed -E '2!d;s/.*:([^:]+):$/\1/'
151-
}
152-
153-
function gpg_delete() {
154-
local fingerprint="$1"
155-
shift
156-
gpg "${@}" --batch --yes --delete-secret-keys "$fingerprint"
157-
}
158-
159-
#--------------------------------------------
160-
# Cleanup on exit
161-
162-
function cleanup() {
163-
if [ -n "$IMPORTED_KEY" ]; then
164-
echo "Deleting imported GPG private key..."
165-
gpg_delete "$IMPORTED_KEY" || true
166-
fi
167-
if [ -d "$RELEASE_GPG_HOMEDIR" ]; then
168-
echo "Cleaning up GPG homedir..."
169-
rm -rf "$RELEASE_GPG_HOMEDIR" || true
170-
echo "Clearing GPG agent..."
171-
gpg-connect-agent reloadagent /bye || true
172-
fi
173-
}
174-
175-
trap "cleanup" EXIT
176-
177-
#--------------------------------------------
178-
# Actual script
179-
180-
if [ -e "$RELEASE_GPG_HOMEDIR" ]; then
181-
echo "ERROR: temporary gpg homedir '$RELEASE_GPG_HOMEDIR' must not exist"
182-
exit 1
183-
fi
184-
mkdir -p -m 700 "$RELEASE_GPG_HOMEDIR"
185-
export GNUPGHOME="$RELEASE_GPG_HOMEDIR"
186-
export JRELEASER_GPG_HOMEDIR="$RELEASE_GPG_HOMEDIR"
187-
IMPORTED_KEY="$(gpg_import "$RELEASE_GPG_PRIVATE_KEY_PATH")"
188-
if [ -z "$IMPORTED_KEY" ]; then
189-
echo "Failed to import GPG key"
190-
exit 1
191-
fi
192-
193129
if [ "$PUSH_CHANGES" != "true" ]; then
194130
ADDITIONAL_OPTIONS="-d"
195131
fi

0 commit comments

Comments
 (0)