1
0

Merge pull request #9950 from f321x/support_3rd_party_signers_release_sh

release.sh: better support for 3rd party signers
This commit is contained in:
ghost43
2025-06-13 16:09:18 +00:00
committed by GitHub

View File

@@ -6,8 +6,9 @@
# - assumes all keys are available, and signs everything # - assumes all keys are available, and signs everything
# This script, for other builders: # This script, for other builders:
# - builds all reproducible binaries, # - builds all reproducible binaries,
# - downloads binaries built by the release manager (from airlock), compares and signs them, # - downloads binaries built by the release manager (from airlock if SFTPUSER, else from website),
# - and then uploads sigs # compares and signs them,
# - and then uploads sigs (if SFTPUSER), else they can be submitted as PR to spesmilo/electrum-signatures
# Note: the .dmg should be built separately beforehand and copied into dist/ # Note: the .dmg should be built separately beforehand and copied into dist/
# (as it is built on a separate machine) # (as it is built on a separate machine)
# #
@@ -57,7 +58,6 @@ if [ -z "$GPGUSER" ]; then
fail "usage: $0 gpg_username" fail "usage: $0 gpg_username"
fi fi
export SSHUSER="$GPGUSER"
RELEASEMANAGER="" RELEASEMANAGER=""
if [ "$GPGUSER" == "ThomasV" ]; then if [ "$GPGUSER" == "ThomasV" ]; then
PUBKEY="--local-user 6694D8DE7BE8EE5631BED9502BD5824B7F9470E6" PUBKEY="--local-user 6694D8DE7BE8EE5631BED9502BD5824B7F9470E6"
@@ -68,6 +68,8 @@ elif [ "$GPGUSER" == "sombernight_releasekey" ]; then
export SSHUSER=sombernight export SSHUSER=sombernight
else else
warn "unexpected GPGUSER=$GPGUSER" warn "unexpected GPGUSER=$GPGUSER"
PUBKEY=""
export SSHUSER=""
fi fi
@@ -208,13 +210,41 @@ if [ -z "$RELEASEMANAGER" ] ; then
rm -rf "$PROJECT_ROOT/dist/releasemanager" rm -rf "$PROJECT_ROOT/dist/releasemanager"
mkdir --parent "$PROJECT_ROOT/dist/releasemanager" mkdir --parent "$PROJECT_ROOT/dist/releasemanager"
cd "$PROJECT_ROOT/dist/releasemanager" cd "$PROJECT_ROOT/dist/releasemanager"
# TODO check somehow that RM had finished uploading
sftp -oBatchMode=no -b - "$SSHUSER@uploadserver" << ! if [ -z "$SSHUSER" ]; then
cd electrum-downloads-airlock info "No SFTP access, downloading binaries from website"
cd "$VERSION" BASE_URL="https://download.electrum.org/$VERSION"
mget * FILES_TO_DOWNLOAD=(
bye "$tarball"
! "$srctarball"
"$appimage"
"$win1"
"$win2"
"$win3"
"$apk1"
"$apk2"
"$apk3"
"$dmg"
)
for filename in "${FILES_TO_DOWNLOAD[@]}"; do
if [ ! -f "$filename" ]; then
info "Downloading $filename..."
wget -q "$BASE_URL/$filename" -O "$filename" || fail "Failed to download $filename"
else
info "File already exists: $filename"
fi
done
else
# TODO check somehow that RM had finished uploading
sftp -oBatchMode=no -b - "$SSHUSER@uploadserver" <<-EOF
cd electrum-downloads-airlock
cd "$VERSION"
mget *
bye
EOF
fi
# check we have each binary # check we have each binary
test -f "$tarball" || fail "tarball not found among sftp downloads" test -f "$tarball" || fail "tarball not found among sftp downloads"
test -f "$srctarball" || fail "srctarball not found among sftp downloads" test -f "$srctarball" || fail "srctarball not found among sftp downloads"
@@ -254,8 +284,14 @@ if [ -z "$RELEASEMANAGER" ] ; then
signame="$fname.$GPGUSER.asc" signame="$fname.$GPGUSER.asc"
gpg --sign --armor --detach $PUBKEY --output "$PROJECT_ROOT/dist/sigs/$signame" "$fname" gpg --sign --armor --detach $PUBKEY --output "$PROJECT_ROOT/dist/sigs/$signame" "$fname"
done done
# upload sigs
ELECBUILD_UPLOADFROM="$PROJECT_ROOT/dist/sigs/" "$CONTRIB/upload.sh" if [ -z "$SSHUSER" ]; then
info "Signing successfully, now open a pull request with your signatures to spesmilo/electrum-signatures"
exit 0
else
# upload sigs
ELECBUILD_UPLOADFROM="$PROJECT_ROOT/dist/sigs/" "$CONTRIB/upload.sh"
fi
else else
# ONLY release manager # ONLY release manager