name: Android CI

on:
  push:
    branches: [ main, 'version/*', 'feature/*' ]
  pull_request:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: set up JDK 11
      uses: actions/setup-java@v2
      with:
        java-version: '11'
        distribution: 'adopt'
        cache: gradle
    - name: Prepare
      run: ./.github/prepare-workflow
    - name: Validate Gradle wrapper
      uses: gradle/wrapper-validation-action@e6e38bacfdf1a337459f332974bb2327a31aaf4b
    - name: Run with Gradle
      uses: gradle/gradle-build-action@v2
      with:
        arguments: assembleProdDebug -PdisablePreDex

  unit-test:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: set up JDK 11
      uses: actions/setup-java@v2
      with:
        java-version: '11'
        distribution: 'adopt'
        cache: gradle
    - name: Prepare
      run: ./.github/prepare-workflow
    - name: Validate Gradle wrapper
      uses: gradle/wrapper-validation-action@e6e38bacfdf1a337459f332974bb2327a31aaf4b
    - name: Run with Gradle
      uses: gradle/gradle-build-action@v2
      with:
        arguments: testProdDebugUnitTest

#  ui-test:
#    runs-on: macos-latest
#    strategy:
#      matrix:
#        api-level: [24, 26, 28, 29, 30, 31]
#    steps:
#    - uses: actions/checkout@v2
#    - name: set up JDK 11
#      uses: actions/setup-java@v2
#      with:
#        java-version: '11'
#        distribution: 'adopt'
#        cache: gradle
#    - name: Prepare
#      run: ./.github/prepare-workflow
#    - name: Validate Gradle wrapper
#      uses: gradle/wrapper-validation-action@e6e38bacfdf1a337459f332974bb2327a31aaf4b
#    - name: run tests
#      uses: reactivecircus/android-emulator-runner@v2
#      with:
#        api-level: ${{ matrix.api-level }}
#        arch: x86_64
#        emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
#        disable-animations: true
#        script: ./gradlew connectedProdDebugAndroidTest

  lint:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: set up JDK 11
      uses: actions/setup-java@v2
      with:
        java-version: '11'
        distribution: 'adopt'
        cache: gradle
    - name: Prepare
      run: ./.github/prepare-workflow
    - name: Validate Gradle wrapper
      uses: gradle/wrapper-validation-action@e6e38bacfdf1a337459f332974bb2327a31aaf4b
    - name: Run with Gradle
      uses: gradle/gradle-build-action@v2
      with:
        arguments: ktlintCheck

  detekt:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: set up JDK 11
      uses: actions/setup-java@v2
      with:
        java-version: '11'
        distribution: 'adopt'
        cache: gradle
    - name: Prepare
      run: ./.github/prepare-workflow
    - name: Validate Gradle wrapper
      uses: gradle/wrapper-validation-action@e6e38bacfdf1a337459f332974bb2327a31aaf4b
    - name: Run with Gradle
      uses: gradle/gradle-build-action@v2
      with:
        arguments: detekt
    - name: Upload SARIF to Github using the upload-sarif action
      uses: github/codeql-action/upload-sarif@v1
      if: ${{ always() }}
      with:
        sarif_file: build/reports/detekt.sarif
