name: Android CI on: push: branches: ["main"] pull_request: branches: ["main"] jobs: build: name: Build and Test runs-on: ubuntu-latest steps: # Step 1: Check out the repository code - name: Checkout Code uses: actions/checkout@v4 # Step 2: Set up JDK 17 with Gradle Caching - name: Set up JDK 17 uses: actions/setup-java@v4 with: distribution: "zulu" java-version: "17" cache: "gradle" # Step 3: Grant execute permission to Gradle Wrapper - name: Grant Execute Permission for Gradlew run: cd BalanceAndroid && chmod +x ./gradlew # Step 4: Jetpack Compose Compiler & Lint Check # Verifies Compose layout rules and Kotlin formatting - name: Run Lint and Code Quality run: cd BalanceAndroid && ./gradlew lintDebug # Step 5: Run Unit Tests & Verify Room Schema # Runs localized Room migrations and DAO tests that do not require an emulator - name: Run Unit Tests run: cd BalanceAndroid && ./gradlew testDebugUnitTest # Step 6: Assemble Debug APK (Targeting Android 8.0 / API 26+) - name: Build Debug APK run: cd BalanceAndroid && ./gradlew assembleDebug # Step 7: Upload the generated APK - name: Upload Debug APK uses: actions/upload-artifact@v4 with: name: android-compose-room-debug-apk path: BalanceAndroid/app/build/outputs/apk/debug/app-debug.apk