#!/bin/bash # build.sh: build the debug APK in a throwaway Docker container, or run the # JVM unit tests with "./build.sh test". Nothing is installed on the host. # Output: app/build/outputs/apk/debug/mygram-droid-debug.apk # # Copyright (C) 2026 Danilo M. # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License version 2 as published # by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # for more details. set -euo pipefail cd "$(dirname "$0")" task=assembleDebug [ "${1:-}" = test ] && task=testDebugUnitTest docker image inspect mygram-droid-build >/dev/null 2>&1 || docker build -t mygram-droid-build app # Gradle and Android caches live in app/.home so files stay user-owned. mkdir -p app/.home docker run --rm --user "$(id -u):$(id -g)" -e HOME=/src/.home -e JAVA_TOOL_OPTIONS=-Duser.home=/src/.home \ -v "$PWD/app:/src" -w /src mygram-droid-build \ gradle --no-daemon -q "$task" if [ "$task" = assembleDebug ]; then ls -l app/build/outputs/apk/debug/*.apk fi