diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d155c3c1..7423626c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -154,11 +154,8 @@ jobs: - name: Build APK (Release - unsigned) run: | - flutter build apk --release --split-per-abi \ - --target-platform android-arm,android-arm64 + bash scripts/build_android.sh ls -la build/app/outputs/flutter-apk/ - test -f build/app/outputs/flutter-apk/app-arm64-v8a-release.apk - test -f build/app/outputs/flutter-apk/app-armeabi-v7a-release.apk - name: Sign APKs uses: r0adkll/sign-android-release@349ebdef58775b1e0d8099458af0816dc79b6407 # v1 diff --git a/scripts/build_android.sh b/scripts/build_android.sh new file mode 100644 index 00000000..eb17e940 --- /dev/null +++ b/scripts/build_android.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# Build the supported Android release APKs for SpotiFLAC Mobile. + +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_DIR="$(dirname "$SCRIPT_DIR")" +OUTPUT_DIR="$PROJECT_DIR/build/app/outputs/flutter-apk" + +cd "$PROJECT_DIR" +flutter build apk \ + --release \ + --split-per-abi \ + --target-platform android-arm,android-arm64 \ + "$@" + +for apk in app-armeabi-v7a-release.apk app-arm64-v8a-release.apk; do + if [[ ! -f "$OUTPUT_DIR/$apk" ]]; then + echo "Error: expected APK was not created: $OUTPUT_DIR/$apk" >&2 + exit 1 + fi +done + +echo "Built Android release APKs in $OUTPUT_DIR"