feat: android webview app + APK build script + CI artifact
CI / test-and-package (push) Successful in 43s
CI / build-android (push) Failing after 39s

Android app (WebView wrapper):
- Wraps the public household sharing URL in a native Android app
- Swipe-to-refresh, error handling, back navigation, settings dialog
- User enters their household's public URL on first launch
- Material Design with toolbar, progress indicator

Build tooling:
- build-apk.sh: one-command APK build (auto-installs Java, SDK, Gradle)
- .gitignore updated for Android build artifacts

CI (.gitea/workflows/ci.yml):
- New 'build-android' job (needs test-and-package)
- Installs Android SDK + Java 17, builds debug APK
- Uploads APK as 'meal-tracker-apk' artifact
This commit is contained in:
agentbox
2026-08-01 10:28:54 +00:00
parent ae95841b5b
commit 92c69ddf4b
24 changed files with 1082 additions and 0 deletions
+53
View File
@@ -38,3 +38,56 @@ jobs:
with:
name: meal-tracker
path: meal-tracker.zip
build-android:
runs-on: ubuntu-latest
needs: test-and-package
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Java 17
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: "17"
- name: Build APK
run: |
export ANDROID_SDK_ROOT="$HOME/android-sdk"
mkdir -p "$ANDROID_SDK_ROOT"
# Download Android command-line tools
wget -q https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip \
-O /tmp/cmdline-tools.zip
unzip -qo /tmp/cmdline-tools.zip -d /tmp/cmdline-tools-tmp
mkdir -p "$ANDROID_SDK_ROOT/cmdline-tools"
mv /tmp/cmdline-tools-tmp/cmdline-tools "$ANDROID_SDK_ROOT/cmdline-tools/latest"
# Accept licenses and install SDK packages
yes | "$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" --licenses > /dev/null 2>&1
"$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" \
"platform-tools" \
"build-tools;34.0.0" \
"platforms;android-34" > /dev/null 2>&1
# Create local.properties
echo "sdk.dir=$ANDROID_SDK_ROOT" > android/local.properties
# Download Gradle
wget -q https://services.gradle.org/distributions/gradle-8.7-bin.zip -O /tmp/gradle.zip
mkdir -p android/.gradle-home
unzip -qo /tmp/gradle.zip -d android/.gradle-home
# Generate wrapper
cd android
.gradle-home/gradle-8.7/bin/gradle wrapper --gradle-version 8.7 --no-daemon
# Build
./gradlew assembleDebug --no-daemon
- name: Upload APK artifact
uses: actions/upload-artifact@v3
with:
name: meal-tracker-apk
path: android/app/build/outputs/apk/debug/*.apk