112 lines
3.0 KiB
YAML
112 lines
3.0 KiB
YAML
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 |