name: build on: push: branches: - master pull_request: concurrency: group: build-${{ github.ref }} cancel-in-progress: true jobs: check: name: Checks runs-on: ubuntu-latest timeout-minutes: 60 steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Java uses: actions/setup-java@v4 with: distribution: 'zulu' java-version: 17 - name: Setup Gradle uses: gradle/gradle-build-action@v2 - name: Check Gradle wrapper uses: gradle/wrapper-validation-action@v1 - name: Run Detekt run: ./gradlew detekt unit-tests: needs: check name: Unit tests runs-on: ubuntu-latest timeout-minutes: 10 steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Java uses: actions/setup-java@v4 with: distribution: 'zulu' java-version: 17 - name: Setup Gradle uses: gradle/gradle-build-action@v2 - name: Run Tests run: ./gradlew test androidTest: needs: check name: Instrumented tests runs-on: macOS-12 strategy: matrix: device-config: [ "pixel_6api31aosp" ] steps: - name: Checkout uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: distribution: 'zulu' java-version: '17' - name: Setup Gradle uses: gradle/gradle-build-action@v2 - name: Setup Android SDK uses: android-actions/setup-android@v3 - name: Run instrumented tests with GMD run: ./gradlew cleanManagedDevices --unused-only && ./gradlew ${{ matrix.device-config }}debugAndroidTest -Dorg.gradle.workers.max=1 -Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect" -Pandroid.experimental.testOptions.managedDevices.emulator.showKernelLogging=true - name: Upload test reports if: always() uses: actions/upload-artifact@v4 with: name: test-reports-${{ matrix.api-level }} path: '*/build/reports/androidTests'