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:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user