name: CI on: push: branches: [main] jobs: test-and-package: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Setup Python uses: actions/setup-python@v4 with: python-version: "3.13" - name: Install dependencies run: pip install -r requirements.txt - name: Run tests run: python -m pytest tests/ -v - name: Package artifact run: | zip -r meal-tracker.zip . \ -x ".git/*" \ -x ".gitea/*" \ -x ".env" \ -x "docker-compose.yml" \ -x ".pytest_cache/*" \ -x "__pycache__/*" \ -x "meals.db" - name: Upload artifact uses: actions/upload-artifact@v3 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" 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" { yes 2>/dev/null || true; } | "$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" --licenses > /dev/null 2>&1 || true "$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" \ "platform-tools" \ "build-tools;34.0.0" \ "platforms;android-34" > /dev/null 2>&1 || true echo "sdk.dir=$ANDROID_SDK_ROOT" > android/local.properties 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 cd android .gradle-home/gradle-8.7/bin/gradle wrapper --gradle-version 8.7 --no-daemon ./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