Skip to content

Commit 54f823b

Browse files
authored
Merge pull request #9950 from f321x/support_3rd_party_signers_release_sh
release.sh: better support for 3rd party signers
2 parents ae5aa2c + bffc006 commit 54f823b

File tree

1 file changed

+48
-12
lines changed

1 file changed

+48
-12
lines changed

contrib/release.sh

Lines changed: 48 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
# - assumes all keys are available, and signs everything
77
# This script, for other builders:
88
# - builds all reproducible binaries,
9-
# - downloads binaries built by the release manager (from airlock), compares and signs them,
10-
# - and then uploads sigs
9+
# - downloads binaries built by the release manager (from airlock if SFTPUSER, else from website),
10+
# compares and signs them,
11+
# - and then uploads sigs (if SFTPUSER), else they can be submitted as PR to spesmilo/electrum-signatures
1112
# Note: the .dmg should be built separately beforehand and copied into dist/
1213
# (as it is built on a separate machine)
1314
#
@@ -57,7 +58,6 @@ if [ -z "$GPGUSER" ]; then
5758
fail "usage: $0 gpg_username"
5859
fi
5960

60-
export SSHUSER="$GPGUSER"
6161
RELEASEMANAGER=""
6262
if [ "$GPGUSER" == "ThomasV" ]; then
6363
PUBKEY="--local-user 6694D8DE7BE8EE5631BED9502BD5824B7F9470E6"
@@ -68,6 +68,8 @@ elif [ "$GPGUSER" == "sombernight_releasekey" ]; then
6868
export SSHUSER=sombernight
6969
else
7070
warn "unexpected GPGUSER=$GPGUSER"
71+
PUBKEY=""
72+
export SSHUSER=""
7173
fi
7274

7375

@@ -208,13 +210,41 @@ if [ -z "$RELEASEMANAGER" ] ; then
208210
rm -rf "$PROJECT_ROOT/dist/releasemanager"
209211
mkdir --parent "$PROJECT_ROOT/dist/releasemanager"
210212
cd "$PROJECT_ROOT/dist/releasemanager"
211-
# TODO check somehow that RM had finished uploading
212-
sftp -oBatchMode=no -b - "$SSHUSER@uploadserver" << !
213-
cd electrum-downloads-airlock
214-
cd "$VERSION"
215-
mget *
216-
bye
217-
!
213+
214+
if [ -z "$SSHUSER" ]; then
215+
info "No SFTP access, downloading binaries from website"
216+
BASE_URL="https://download.electrum.org/$VERSION"
217+
FILES_TO_DOWNLOAD=(
218+
"$tarball"
219+
"$srctarball"
220+
"$appimage"
221+
"$win1"
222+
"$win2"
223+
"$win3"
224+
"$apk1"
225+
"$apk2"
226+
"$apk3"
227+
"$dmg"
228+
)
229+
230+
for filename in "${FILES_TO_DOWNLOAD[@]}"; do
231+
if [ ! -f "$filename" ]; then
232+
info "Downloading $filename..."
233+
wget -q "$BASE_URL/$filename" -O "$filename" || fail "Failed to download $filename"
234+
else
235+
info "File already exists: $filename"
236+
fi
237+
done
238+
else
239+
# TODO check somehow that RM had finished uploading
240+
sftp -oBatchMode=no -b - "$SSHUSER@uploadserver" <<-EOF
241+
cd electrum-downloads-airlock
242+
cd "$VERSION"
243+
mget *
244+
bye
245+
EOF
246+
fi
247+
218248
# check we have each binary
219249
test -f "$tarball" || fail "tarball not found among sftp downloads"
220250
test -f "$srctarball" || fail "srctarball not found among sftp downloads"
@@ -254,8 +284,14 @@ if [ -z "$RELEASEMANAGER" ] ; then
254284
signame="$fname.$GPGUSER.asc"
255285
gpg --sign --armor --detach $PUBKEY --output "$PROJECT_ROOT/dist/sigs/$signame" "$fname"
256286
done
257-
# upload sigs
258-
ELECBUILD_UPLOADFROM="$PROJECT_ROOT/dist/sigs/" "$CONTRIB/upload.sh"
287+
288+
if [ -z "$SSHUSER" ]; then
289+
info "Signing successfully, now open a pull request with your signatures to spesmilo/electrum-signatures"
290+
exit 0
291+
else
292+
# upload sigs
293+
ELECBUILD_UPLOADFROM="$PROJECT_ROOT/dist/sigs/" "$CONTRIB/upload.sh"
294+
fi
259295

260296
else
261297
# ONLY release manager

0 commit comments

Comments
 (0)