commit d9fc822707f9a3cafd6fdd79e1f584a73a4956e0 Author: soxx Date: Mon Apr 13 13:06:36 2020 +0200 Initial commit diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f0f321e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,35 @@ +FROM gradle + +ENV SDK_URL="https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip" \ + ANDROID_HOME="/usr/local/android-sdk" \ + JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/" + +RUN apt update \ + && apt install -y openjdk-8-jdk curl unzip patchutils + +RUN mkdir "$ANDROID_HOME" .android \ + && cd "$ANDROID_HOME" \ + && curl -o sdk.zip $SDK_URL \ + && unzip sdk.zip \ + && rm sdk.zip \ + && $ANDROID_HOME/tools/bin/sdkmanager --update \ + && yes | $ANDROID_HOME/tools/bin/sdkmanager --licenses + +ADD patches /patches + +RUN mkdir /apk + +WORKDIR /app + +ARG VERSION +ARG KEYSTORE_FILE +ARG KEYSTORE_PROPERTIES + +RUN curl -OL https://github.com/M66B/FairEmail/archive/$VERSION.tar.gz \ + && tar xvzf $VERSION.tar.gz \ + && cd FairEmail-$VERSION \ + && (for patch in /patches/*; do patch -p0 < $patch; done) \ + && echo $KEYSTORE_FILE | base64 -d > keystore.jks \ + && echo $KEYSTORE_PROPERTIES | base64 -d > keystore.properties \ + && gradle --no-daemon assemble \ + && cp app/build/outputs/apk/full/github/FairEmail-v$VERSION-full-github.apk /apk diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..51e4c51 --- /dev/null +++ b/build.sh @@ -0,0 +1,49 @@ +#!/bin/sh + +set -eu + +VERSION=$1 + +APK_FILENAME=FairEmail-v$VERSION-full-github.apk + +set +e +rsync sillywalk.de:/srv/www/sillywalk.de/root/releases/$APK_FILENAME +if [ $? -eq 0 ]; then + echo "$VERSION already released. Aborting." + exit 1 +fi +set -e + +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 diff --git a/patches/10-pro.diff b/patches/10-pro.diff new file mode 100644 index 0000000..ce8d2df --- /dev/null +++ b/patches/10-pro.diff @@ -0,0 +1,13 @@ +--- app/src/main/java/eu/faircode/email/ActivityBilling.java 2020-04-11 09:27:44.000000000 +0000 ++++ app/src/main/java/eu/faircode/email/ActivityBilling.java 2020-04-11 09:27:44.000000000 +0000 +@@ -192,9 +192,7 @@ + } + + static boolean isPro(Context context) { +- if (BuildConfig.DEBUG && false) +- return true; +- return PreferenceManager.getDefaultSharedPreferences(context).getBoolean("pro", false); ++ return true; + } + + private BroadcastReceiver receiver = new BroadcastReceiver() { diff --git a/templates/keystore.properties b/templates/keystore.properties new file mode 100644 index 0000000..5ab48e0 --- /dev/null +++ b/templates/keystore.properties @@ -0,0 +1,4 @@ +storeFile=../keystore.jks +storePassword=$ANDROID_KEYSTORE_STOREPASSWORD +keyAlias=$ANDROID_KEYSTORE_ALIAS +keyPassword=$ANDROID_KEYSTORE_KEYPASSWORD diff --git a/templates/notification.email b/templates/notification.email new file mode 100644 index 0000000..33de4ae --- /dev/null +++ b/templates/notification.email @@ -0,0 +1,6 @@ +From: Android Labs +To: Fairemail Release +Subject: Release: FairEmail $VERSION +Date: $DATE + +Release: $RELEASE_URL