#!/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