Skip to content

Commit

Permalink
Create android_ci.yml
Browse files Browse the repository at this point in the history
  • Loading branch information
k3ssdev authored May 22, 2024
1 parent 59e2170 commit 69c0bd7
Showing 1 changed file with 154 additions and 0 deletions.
154 changes: 154 additions & 0 deletions .github/workflows/android_ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
name: Android CI

on:
push:
branches: [dev]

pull_request:
branches: [master]

jobs:
setup:
runs-on: ubuntu-latest
steps:
- name: Checkout the code
uses: actions/checkout@v4

- name: Set up Java JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
cache-dependency-path: |
**/*.gradle*
**/gradle-wrapper.properties
- name: Replace ADMOB_APP_ID in AndroidManifest.xml
run: sed -i 's/${ADMOB_APP_ID}/${{ secrets.ADMOB_APP_ID }}/g' app/src/main/AndroidManifest.xml

lint:
name: Perform lint check
needs: [setup]
runs-on: ubuntu-latest
steps:
- name: Checkout the code
uses: actions/checkout@v4

- name: Set up Java JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
cache-dependency-path: |
**/*.gradle*
**/gradle-wrapper.properties
- name: Replace ADMOB_APP_ID in AndroidManifest.xml
run: sed -i 's/${ADMOB_APP_ID}/${{ secrets.ADMOB_APP_ID }}/g' app/src/main/AndroidManifest.xml

- name: Make Gradle executable
run: chmod +x ./gradlew

- name: Run lint
run: ./gradlew lintDebug

- name: Upload html test report
uses: actions/upload-artifact@v4
with:
name: lint.html
path: app/build/reports/lint-results-debug.html

unit-test:
name: Perform Unit Testing
needs: [lint]
runs-on: ubuntu-latest
steps:
- name: Checkout the code
uses: actions/checkout@v4

- name: Set up Java JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
cache-dependency-path: |
**/*.gradle*
**/gradle-wrapper.properties
- name: Replace ADMOB_APP_ID in AndroidManifest.xml
run: sed -i 's/${ADMOB_APP_ID}/${{ secrets.ADMOB_APP_ID }}/g' app/src/main/AndroidManifest.xml

- name: Run tests
run: ./gradlew test

- name: Upload test report
uses: actions/upload-artifact@v4
with:
name: unit_test_report
path: app/build/reports/test/testDebugUnitTest/

instrumentation-test:
name: Perform Instrumentation Testing
needs: [unit-test]
runs-on: ubuntu-latest
steps:
- name: Checkout the code
uses: actions/checkout@v4

- name: Set up Java JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
cache-dependency-path: |
**/*.gradle*
**/gradle-wrapper.properties
- name: Replace ADMOB_APP_ID in AndroidManifest.xml
run: sed -i 's/${ADMOB_APP_ID}/${{ secrets.ADMOB_APP_ID }}/g' app/src/main/AndroidManifest.xml

- name: Run espresso tests
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 29
script: ./gradlew check

- name: Upload Instrumentation Test report
uses: actions/upload-artifact@v4
with:
name: instrumentation_test_report
path: app/build/reports/androidTests/connected

debug-apk:
name: Generate Debug APK
needs: [instrumentation-test]
runs-on: ubuntu-latest
steps:
- name: Checkout the code
uses: actions/checkout@v4

- name: Set up Java JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
cache-dependency-path: |
**/*.gradle*
**/gradle-wrapper.properties
- name: Replace ADMOB_APP_ID in AndroidManifest.xml
run: sed -i 's/${ADMOB_APP_ID}/${{ secrets.ADMOB_APP_ID }}/g' app/src/main/AndroidManifest.xml

- name: Build debug APK
run: ./gradlew assembleDebug --stacktrace

- name: Upload APK
uses: actions/upload-artifact@v4
with:
name: stacompanion.apk
path: app/build/outputs/apk/debug/app-debug.apk

0 comments on commit 69c0bd7

Please sign in to comment.