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

54 lines
1.6 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
docker build \
--build-arg VERSION=$VERSION \
--build-arg KEYSTORE_FILE=$(cat $ANDROID_KEYSTORE_FILE | base64 -w0) \
--build-arg KEYSTORE_PROPERTIES=$(envsubst < templates/keystore.properties | base64 -w0) \
-t fairemail-apk \
.
DOCKER_CONTAINER_ID=$(docker create fairemail-apk)
trap "{
rm -f $APK_FILENAME;
docker rm $DOCKER_CONTAINER_ID;
}" EXIT
docker cp $DOCKER_CONTAINER_ID:/apk/$APK_FILENAME .
UPLOADED=$(rsync -i --ignore-existing $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