aboutsummaryrefslogtreecommitdiffstats
path: root/build.sh
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-10-22 11:08:09 +0200
committerDanilo M. <danix@danix.xyz>2026-10-22 11:08:09 +0200
commit3605f4e081283b2f32451c7075fe07648e76e99d (patch)
tree71c44ba6c19a77ce470db2200d64c491ed155a27 /build.sh
parent765dcec1266fc1b63ccf48863f36425400d43dcf (diff)
downloadmygram-droid-3605f4e081283b2f32451c7075fe07648e76e99d.tar.gz
mygram-droid-3605f4e081283b2f32451c7075fe07648e76e99d.zip
Add Android project skeleton and Docker build
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'build.sh')
-rwxr-xr-xbuild.sh33
1 files changed, 33 insertions, 0 deletions
diff --git a/build.sh b/build.sh
new file mode 100755
index 0000000..154e32d
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,33 @@
+#!/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. <danix@danix.xyz>
+#
+# 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