Broke it up into multiple, dependent jobs

This allows common parts of the CI to run only once and for the
final testing to all be done in parallel.
Loren M. Lang 2022-01-02 19:54:12 -08:00
rodzic e559daa986
commit 2897756a5e
1 zmienionych plików z 27 dodań i 10 usunięć

Wyświetl plik

@ -7,16 +7,9 @@ on:
branches: [ '**' ]
jobs:
test:
# macOS provided hardware-accelerated emulator
compile:
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
api-level: [ 15, 19, 24, 30 ]
target: [ default, google_apis ]
name: "Android CI for API ${{ matrix.api-level }} target ${{ matrix.target }}"
name: "Compile all sources"
steps:
- name: checkout
@ -34,9 +27,21 @@ jobs:
- name: Create properties file with empty API key
run: echo mapsApiKey="\"${{ secrets.mapsApiKey }}\"" >> local.properties
- name: Build with Gradle
- name: Build App
run: ./gradlew assemble --stacktrace
- name: Build unit tests
run: ./gradlew assembleDebugUnitTest assembleReleaseUnitTest --stacktrace
- name: Build instrumentation tests
run: ./gradlew assembleAndroidTest --stacktrace
unit-test:
name: "Run all unit tests"
needs: compile
runs-on: macos-latest
steps:
- name: Run Unit Tests
run: ./gradlew test --stacktrace
@ -44,6 +49,18 @@ jobs:
run: ./gradlew lint --stacktrace
continue-on-error: true
instrumentation:
name: "Testing on API ${{ matrix.api-level }} for ${{ matrix.target }}"
needs: compile
# macOS provided hardware-accelerated emulator
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
api-level: [ 15, 19, 24, 30 ]
target: [ default, google_apis ]
steps:
- name: Run Instrumented Tests
uses: reactivecircus/android-emulator-runner@v2
with: