name: Android CI on: pull_request: branches: [ master ] repository_dispatch: workflow_dispatch: jobs: ktlint-check: name: Ktlint code check runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - uses: actions/cache@v2 with: path: | ~/.gradle/caches ~/.gradle/wrapper key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }} restore-keys: | ${{ runner.os }}-gradle- - name: Set up JDK 11 uses: actions/setup-java@v1 with: java-version: 11 - name: Make gradlew executable run: chmod +x ./gradlew - name: Run ktlint check run: ./gradlew ktlintCheck --continue lint-check: name: Lint code check runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Restore Cache uses: actions/cache@v2 with: path: | ~/.gradle/caches ~/.gradle/wrapper key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }} restore-keys: | ${{ runner.os }}-gradle- - name: Set up JDK 11 uses: actions/setup-java@v1 with: java-version: 11 - name: Make gradlew executable run: chmod +x ./gradlew - name: Run lint check run: ./gradlew lint detekt-check: name: Detekt code check runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Restore Cache uses: actions/cache@v2 with: path: | ~/.gradle/caches ~/.gradle/wrapper key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }} restore-keys: | ${{ runner.os }}-gradle- - name: Set up JDK 11 uses: actions/setup-java@v1 with: java-version: 11 - name: Make gradlew executable run: chmod +x ./gradlew - name: Run detekt check run: ./gradlew detekt unit-tests: name: Unit tests needs: - ktlint-check - lint-check - detekt-check runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Set up JDK 11 uses: actions/setup-java@v1 with: java-version: 11 - name: Make gradlew executable run: chmod +x ./gradlew - name: Run Unit Tests run: ./gradlew testReleaseUnitTest instrumentation-tests: name: Instrumentation tests needs: - unit-tests runs-on: macos-latest steps: - name: Checkout uses: actions/checkout@v2 - uses: actions/setup-java@v1 with: java-version: 11 - name: Make gradlew executable run: chmod +x ./gradlew - name: Run Instrumentation Tests uses: reactivecircus/android-emulator-runner@v2 with: api-level: 29 script: ./gradlew :app:connectedAndroidTest