Skip to content

CI hotfix

CI hotfix #168

name: Pull request checks
on:
pull_request:
merge_group:
types: [ checks_requested ]
jobs:
detekt:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Java 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 17
- name: Gradle cache
uses: gradle/gradle-build-action@v2
- name: Detekt ♻️
run: ./gradlew detekt
unit_tests:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Java 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 17
- name: Gradle cache
uses: gradle/gradle-build-action@v2
- name: Decode google-services.json
env:
FIREBASE_CONFIG: ${{ secrets.GOOGLE_SERVICES_JSON }}
run: echo $FIREBASE_CONFIG > app/google-services.json
- name: Unit tests
run: ./gradlew test -x :screenshot_testing:test
ui_tests:
runs-on: macos-latest
strategy:
matrix:
api-level: [ 26, 30 ]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Java 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 17
- name: Gradle cache
uses: gradle/gradle-build-action@v2
- name: Decode google-services.json
env:
FIREBASE_CONFIG: ${{ secrets.GOOGLE_SERVICES_JSON }}
run: echo $FIREBASE_CONFIG > app/google-services.json
- name: AVD cache
uses: actions/cache@v3
id: avd-cache
with:
path: |
~/.android/avd/*
~/.android/adb*
key: avd-29
- name: create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: reactivecircus/android-emulator-runner@v2
with:
target: default
api-level: 29
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: false
sdcard-path-or-size: 100M
force-avd-creation: false
script: echo "Generated AVD snapshot for caching."
- name: 🤖 UI tests
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ matrix.api-level }}
arch: x86_64
disable-animations: true
disk-size: 6000M
heap-size: 600M
script: ./gradlew connectedDebugAndroidTest --daemon
- name: Upload test reports
if: always()
uses: actions/upload-artifact@v3
with:
name: test-reports-${{ matrix.api-level }}
path: '**/build/reports/androidTests'
screenshot_tests:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Java 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 17
- name: Decode google-services.json
env:
FIREBASE_CONFIG: ${{ secrets.GOOGLE_SERVICES_JSON }}
run: echo $FIREBASE_CONFIG > app/google-services.json
- name: 📸 Snapshot tests
run: ./gradlew verifyPaparazziDebug