name: Pull requests

on:
  pull_request:
    branches:
      - '**'

jobs:

  code_formatting_job:
    name: Code Formatting
    runs-on: ubuntu-18.04
    continue-on-error: true

    steps:
      - uses: actions/checkout@v1
        with:
          fetch-depth: 1

      - name: Set up JDK 11
        uses: actions/setup-java@v1
        with:
          java-version: 11
      - 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: Static Analysis
        run: ./gradlew ktlintCheck

      - name: Upload ktlint Reports
        if: ${{ always() }}
        uses: actions/upload-artifact@v2
        with:
         name: ktlint-report
         path: '**/build/reports/ktlint'



  detekt:
    name: Detekt
    runs-on: ubuntu-18.04
    continue-on-error: true

    steps:
      - uses: actions/checkout@v1
        with:
          fetch-depth: 1

      - name: Set up JDK 11
        uses: actions/setup-java@v1
        with:
          java-version: 11
      - 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: Static Analysis
        run: ./gradlew detekt
      - name: Upload Lint Reports
        uses: actions/upload-artifact@v2
        if: ${{ always() }}
        with:
          name: detekt-report
          path: '**/build/reports/detekt'



  lint_job:
    name: Lint
    runs-on: ubuntu-latest
    continue-on-error: true
    steps:

      - name: Checkout
        uses: actions/checkout@v2
        with:
            fetch-depth: 1

      - name: Set up JDK 11
        uses: actions/setup-java@v1
        with:
            java-version: 11

      - 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: Run Debug Lint
        run: ./gradlew app:lintDebug custom:lintCustomexampleDebug

      - name: Upload Lint Reports
        uses: actions/upload-artifact@v2
        if: ${{ always() }}
        with:
            name: lint-report
            path: '**/build/reports/lint-results-*'




  assemble_job:
    name: Assemble
    runs-on: ubuntu-18.04
    continue-on-error: true

    steps:
      - uses: actions/checkout@v1
        with:
          fetch-depth: 1

      - name: Set up JDK 11
        uses: actions/setup-java@v1
        with:
          java-version: 11

      - name: Install NDK
        run: echo "y" | sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install "ndk;22.0.7026061" --sdk_root=${ANDROID_SDK_ROOT}

      - name: Build all configurations
        run: ./gradlew assemble

      - name: Upload APK as Artifacts
        uses: actions/upload-artifact@v2.2.0
        if: ${{ always() }}
        with:
            name: kiwix-android
            path: |
              **/*.apk
