You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
fairemail-apk/build.sh

52 lines
1.5 KiB

#!/bin/bash
set -eu
RELEASES="$(curl -s https://api.github.com/repos/M66B/FairEmail/releases)"
# FIXME Test whether asset name matches "full-github"
LATEST_GITHUB_RELEASE=$(echo $RELEASES | jq '[.[] | select(.assets | length > 0)] | first')
if [ "$LATEST_GITHUB_RELEASE" == null ]; then
echo "No github release available"
exit 1
fi
VERSION=$(echo $LATEST_GITHUB_RELEASE | jq -r '.tag_name')
APK_FILENAME=$(echo $LATEST_GITHUB_RELEASE | jq -r '.assets[0].name')
if rsync sillywalk.de:/srv/www/sillywalk.de/root/releases/$APK_FILENAME; then
echo "$APK_FILENAME already released. Aborting."
exit 1
fi
KEYSTORE_FILE=$(cat $ANDROID_KEYSTORE_FILE | base64 -w0)
KEYSTORE_PROPERTIES=$(envsubst < templates/keystore.properties | base64 -w0)
mkdir -p apk
trap "{
rm -rf apk;
}" EXIT
docker build -t fairemail-apk-builder .
docker run --rm -it \
-v $(pwd)/patches:/patches:ro \
-v $(pwd)/apk:/apk:rw \
fairemail-apk-builder $VERSION $KEYSTORE_FILE $KEYSTORE_PROPERTIES
UPLOADED=$(rsync -i --ignore-existing apk/$APK_FILENAME sillywalk.de:/srv/www/sillywalk.de/root/releases)
if [ -z "$UPLOADED" ]; then
echo "$VERSION already uploaded. Aborting."
exit 1
fi
export VERSION
export DATE="$(date +'%a, %-d %b %Y %H:%M:%S %z')"
export HOSTNAME="$(hostname).local" \
export RELEASE_URL="https://sillywalk.de/releases/$APK_FILENAME"
envsubst < templates/notification.email | curl \
--mail-from android-labs@envy.local \
--mail-rcpt fairemail-release@sillywalk.de \
--upload-file - \
smtp://mail.uberc.at