Skip to content

fix(android): use CreateDocument for output file to fix SAF permissio… #12

fix(android): use CreateDocument for output file to fix SAF permissio…

fix(android): use CreateDocument for output file to fix SAF permissio… #12

Workflow file for this run

name: Android Build
on:
push:
branches: [main, master]
paths:
- 'android/**'
- '.github/workflows/android-build.yml'
pull_request:
branches: [main, master]
paths:
- 'android/**'
- '.github/workflows/android-build.yml'
workflow_dispatch:
jobs:
lint-and-test:
name: Lint & Unit Tests
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '17'
- name: Install Gradle & Android SDK
run: |
# Install Gradle 8.7
wget -q https://services.gradle.org/distributions/gradle-8.7-bin.zip -O /tmp/gradle.zip
sudo unzip -q /tmp/gradle.zip -d /opt
# Setup Android SDK
export ANDROID_SDK_ROOT=/usr/local/lib/android/sdk
echo "ANDROID_SDK_ROOT=$ANDROID_SDK_ROOT"
ls -la $ANDROID_SDK_ROOT/platforms/ 2>/dev/null || echo "Initial platforms: (empty)"
# Install required SDK components
if [ -f "$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" ]; then
yes | $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --licenses 2>/dev/null || true
$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager \
"platforms;android-34" \
"build-tools;34.0.0" 2>&1 | tail -5
fi
# Create local.properties
echo "sdk.dir=$ANDROID_SDK_ROOT" > android/local.properties
echo "Gradle installed. Android SDK ready."
- name: Run unit tests
working-directory: android
run: /opt/gradle-8.7/bin/gradle testDebugUnitTest 2>&1 | tail -60
env:
ANDROID_SDK_ROOT: /usr/local/lib/android/sdk
- name: Upload test reports
uses: actions/upload-artifact@v4
if: failure()
with:
name: test-reports
path: android/app/build/reports/tests/
retention-days: 7
build-apk:
name: Build Debug APK
runs-on: ubuntu-22.04
needs: lint-and-test
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '17'
- name: Install Gradle & Android SDK
run: |
# Install Gradle 8.7
wget -q https://services.gradle.org/distributions/gradle-8.7-bin.zip -O /tmp/gradle.zip
sudo unzip -q /tmp/gradle.zip -d /opt
# Setup Android SDK
export ANDROID_SDK_ROOT=/usr/local/lib/android/sdk
echo "ANDROID_SDK_ROOT=$ANDROID_SDK_ROOT"
# Install required SDK components
if [ -f "$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" ]; then
yes | $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --licenses 2>/dev/null || true
$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager \
"platforms;android-34" \
"build-tools;34.0.0" 2>&1 | tail -5
fi
echo "sdk.dir=$ANDROID_SDK_ROOT" > android/local.properties
- name: Build APK
working-directory: android
run: |
echo "=== SDK Config ==="
cat local.properties
echo "=== Gradle Version ==="
/opt/gradle-8.7/bin/gradle --version 2>&1 | head -3
echo "=== Building ==="
/opt/gradle-8.7/bin/gradle assembleDebug --stacktrace --no-daemon 2>&1 | tail -120
env:
ANDROID_SDK_ROOT: /usr/local/lib/android/sdk
- name: Upload APK artifact
uses: actions/upload-artifact@v4
with:
name: app-debug
path: android/app/build/outputs/apk/debug/app-debug.apk
retention-days: 30