diff --git a/.github/workflows/android-dev-ci.yml b/.github/workflows/android-dev-ci.yml new file mode 100644 index 00000000..22a89ab0 --- /dev/null +++ b/.github/workflows/android-dev-ci.yml @@ -0,0 +1,45 @@ +name: Android CI (dev) + +on: + push: + branches: [ "dev" ] + pull_request: + branches: [ "dev" ] + +jobs: + dev-ci: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + cache: gradle + + - name: Grant execute permission for gradlew + run: chmod +x ./gradlew + + - name: Clean project + run: ./gradlew clean + + - name: Run Android Lint + run: ./gradlew lint + + - name: Run Unit Tests + run: ./gradlew testDebugUnitTest + + - name: Run Android Instrumentation Tests + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: 30 + target: google_apis + arch: x86_64 + profile: pixel_3 + script: ./gradlew connectedDebugAndroidTest + + - name: Build APKs + run: ./gradlew assembleDebug assembleRelease diff --git a/.github/workflows/android-master-ci-cd.yml b/.github/workflows/android-master-ci-cd.yml new file mode 100644 index 00000000..29bc0fef --- /dev/null +++ b/.github/workflows/android-master-ci-cd.yml @@ -0,0 +1,59 @@ +name: Android CI/CD (master) + +on: + push: + branches: [ "master" ] + +jobs: + master-ci-cd: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + cache: gradle + + - name: Grant execute permission for gradlew + run: chmod +x ./gradlew + + - name: Clean project + run: ./gradlew clean + + - name: Run Android Lint + run: ./gradlew lint + + - name: Run Unit Tests + run: ./gradlew testDebugUnitTest + + - name: Run Android Instrumentation Tests + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: 30 + target: google_apis + arch: x86_64 + profile: pixel_3 + script: ./gradlew connectedDebugAndroidTest + + - name: Build Debug and Release APK + run: ./gradlew assembleDebug assembleRelease + + - name: Upload Debug APK to Firebase + uses: wzieba/Firebase-Distribution-Github-Action@v1 + with: + appId: ${{ secrets.FIREBASE_APP_ID }} + token: ${{ secrets.FIREBASE_TOKEN }} + groups: testers + file: app/build/outputs/apk/debug/app-debug.apk + + - name: Upload Release APK to Firebase + uses: wzieba/Firebase-Distribution-Github-Action@v1 + with: + appId: ${{ secrets.FIREBASE_APP_ID }} + token: ${{ secrets.FIREBASE_TOKEN }} + groups: testers + file: app/build/outputs/apk/release/app-release.apk