From 86b7cb9dcd3c28d8c8aa5ad8ab98b6ab707b5f05 Mon Sep 17 00:00:00 2001 From: soxx Date: Fri, 17 Apr 2020 21:58:55 +0200 Subject: [PATCH] Split scripts --- build.sh | 29 +++++++---------------------- check_already_released.sh | 14 ++++++++++++++ monitor.sh => check_github.sh | 14 ++------------ email.sh | 6 ++++-- pipeline.sh | 9 +++++++++ upload.sh | 7 ++++++- 6 files changed, 42 insertions(+), 37 deletions(-) create mode 100755 check_already_released.sh rename monitor.sh => check_github.sh (51%) create mode 100755 pipeline.sh diff --git a/build.sh b/build.sh index 61edefd..60df273 100755 --- a/build.sh +++ b/build.sh @@ -2,40 +2,25 @@ set -eu -VERSION=$1 +IN=$(jq . <&0) -APK_FILENAME=FairEmail-v$VERSION-full-github.apk +VERSION=$(echo $IN | jq -r .tag_name) +APK_FILENAME=$(echo $IN | jq -r .file_name) 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 \ - . + . \ + > /dev/null DOCKER_CONTAINER_ID=$(docker create fairemail-apk) trap "{ - rm -f $APK_FILENAME; - docker rm $DOCKER_CONTAINER_ID; + docker rm $DOCKER_CONTAINER_ID > /dev/null ; }" 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 +echo $IN diff --git a/check_already_released.sh b/check_already_released.sh new file mode 100755 index 0000000..01bd1c1 --- /dev/null +++ b/check_already_released.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +set -eu + +IN=$(jq . <&0) + +APK_FILENAME=$(echo $IN | jq -r .file_name) + +if rsync sillywalk.de:/srv/www/sillywalk.de/root/releases/$APK_FILENAME; then + echo "$APK_FILENAME already released. Aborting." >&2 + exit 1 +fi + +echo $IN diff --git a/monitor.sh b/check_github.sh similarity index 51% rename from monitor.sh rename to check_github.sh index f380f0b..931d9cc 100755 --- a/monitor.sh +++ b/check_github.sh @@ -1,6 +1,7 @@ #!/bin/bash set -eu + RELEASES=$(curl https://api.github.com/repos/M66B/FairEmail/releases) # FIXME Test whether asset name matches "full-github" @@ -10,15 +11,4 @@ if [ "$LATEST_GITHUB_RELEASE" == null ]; then exit 1 fi -APK_FILENAME=$(echo $LATEST_GITHUB_RELEASE | jq -r ' .assets[0].name') -TAG_NAME=$(echo $LATEST_GITHUB_RELEASE | jq -r ' .tag_name') - -set +e -rsync sillywalk.de:/srv/www/sillywalk.de/root/releases/$APK_FILENAME -if [ $? -eq 0 ]; then - echo "$TAG_NAME already released. Aborting." - exit 1 -fi -set -e - -./build.sh $TAG_NAME +echo $LATEST_GITHUB_RELEASE | jq -r '{tag_name, file_name: .assets[0].name}' diff --git a/email.sh b/email.sh index f040f9e..43e7ccc 100755 --- a/email.sh +++ b/email.sh @@ -2,8 +2,10 @@ set -eu -VERSION=$1 -APK_FILENAME=$2 +IN=$(jq . <&0) + +VERSION=$(echo $IN | jq -r .tag_name) +APK_FILENAME=$(echo $IN | jq -r .file_name) export VERSION export DATE="$(date +'%a, %-d %b %Y %H:%M:%S %z')" diff --git a/pipeline.sh b/pipeline.sh new file mode 100755 index 0000000..d7ef625 --- /dev/null +++ b/pipeline.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +set -euo pipefail + +./check_github.sh \ + | ./check_already_released.sh \ + | ./build.sh \ + | ./upload.sh \ + | ./email.sh diff --git a/upload.sh b/upload.sh index 5085a13..ef6cbe5 100755 --- a/upload.sh +++ b/upload.sh @@ -2,7 +2,10 @@ set -eu -APK_FILENAME=$1 +IN=$(jq . <&0) + +VERSION=$(echo $IN | jq -r .tag_name) +APK_FILENAME=$(echo $IN | jq -r .file_name) UPLOADED=$(rsync -i --ignore-existing $APK_FILENAME sillywalk.de:/srv/www/sillywalk.de/root/releases) @@ -10,3 +13,5 @@ if [ -z "$UPLOADED" ]; then echo "$VERSION already uploaded. Aborting." exit 1 fi + +echo $IN