name: Main workflow on: pull_request: push: branches: - main paths-ignore: - '**.md' jobs: test: runs-on: ${{ matrix.os }} env: JAVA_TOOL_OPTIONS: -Xmx4g timeout-minutes: 15 strategy: matrix: os: [macos-latest, ubuntu-latest] api-level: [16, 23, 29] target: [default, google_apis] exclude: - os: ubuntu-latest api-level: 23 - os: ubuntu-latest api-level: 29 - target: google_apis api-level: 16 - target: google_apis api-level: 23 - target: google_apis api-level: 29 include: - os: macos-11.0 api-level: 30 target: google_apis - os: macos-latest api-level: 24 target: playstore - os: macos-latest api-level: 28 target: google_apis steps: - name: checkout uses: actions/checkout@v2 - name: validate gradle wrapper uses: gradle/wrapper-validation-action@v1 - name: build, test and lint run: | npm install npm run build npm run lint npm test - name: Java 15 uses: actions/setup-java@v1 with: java-version: 15 - uses: actions/cache@v2 with: path: | ~/.gradle/caches ~/.gradle/wrapper key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }} - uses: actions/cache@v2 id: avd-cache with: path: | ~/.android/avd/* ~/.android/adb* ~/.android/debug.keystore key: avd-${{ matrix.api-level }}-${{ matrix.os }}-${{ matrix.target }} - name: assemble tests run: | cd ./test-fixture/ ./gradlew assembleAndroidTest - name: run emulator to generate snapshot for caching if: steps.avd-cache.outputs.cache-hit != 'true' uses: ./ with: api-level: ${{ matrix.api-level }} target: ${{ matrix.target }} arch: x86 profile: Galaxy Nexus cores: 2 sdcard-path-or-size: 100M avd-name: test force-avd-creation: false emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none disable-animations: false working-directory: ./test-fixture/ script: echo "Generated AVD snapshot for caching." - name: run action uses: ./ with: api-level: ${{ matrix.api-level }} target: ${{ matrix.target }} arch: x86 profile: Galaxy Nexus cores: 2 ram-size: 2048M sdcard-path-or-size: 100M avd-name: test force-avd-creation: false emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none disable-animations: true working-directory: ./test-fixture/ script: | echo $GITHUB_REPOSITORY adb devices ./gradlew connectedDebugAndroidTest