|
126 | 126 | RELEASE_VERSION_BASIS=$(echo "$RELEASE_VERSION" | sed -E 's/^([0-9]+\.[0-9]+\.[0-9]+).*/\1/')
|
127 | 127 | NEXT_VERSION_BASIS=$(echo "$DEVELOPMENT_VERSION" | sed -E 's/^([0-9]+\.[0-9]+\.[0-9]+).*/\1/')
|
128 | 128 |
|
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 |
| - |
193 | 129 | if [ "$PUSH_CHANGES" != "true" ]; then
|
194 | 130 | ADDITIONAL_OPTIONS="-d"
|
195 | 131 | fi
|
|
0 commit comments