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