name: Tests

on:
  push:
    branches:
      - master
      - develop
      - 'hotfix/**'
    tags: [ '*' ]
  pull_request:

jobs:

  tests-fdroid:
      name: F-Droid
      runs-on: ubuntu-latest
      timeout-minutes: 10
      steps:
        - uses: fkirc/skip-duplicate-actions@master
        - uses: actions/checkout@v3
        - uses: gradle/wrapper-validation-action@v1
        - uses: actions/setup-java@v3
          with:
            distribution: 'zulu'
            java-version: 17
        - uses: actions/cache@v3
          with:
            path: |
              ~/.gradle/caches
              ~/.gradle/wrapper
            key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*') }}
        - name: Unit tests
          run: |
            ./gradlew testFdroidDebugUnitTest --stacktrace
            ./gradlew jacocoTestReport --stacktrace
        - uses: codecov/codecov-action@v3
          with:
              flags: unit

  tests-play:
      name: Play
      runs-on: ubuntu-latest
      timeout-minutes: 10
      steps:
        - uses: fkirc/skip-duplicate-actions@master
        - uses: actions/checkout@v3
        - uses: gradle/wrapper-validation-action@v1
        - uses: actions/setup-java@v3
          with:
            distribution: 'zulu'
            java-version: 17
        - uses: actions/cache@v3
          with:
            path: |
              ~/.gradle/caches
              ~/.gradle/wrapper
            key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*') }}
        - name: Unit tests
          run: |
            ./gradlew testPlayDebugUnitTest --stacktrace
            ./gradlew jacocoTestReport --stacktrace
        - uses: codecov/codecov-action@v3
          with:
              flags: unit

  tests-hms:
      name: HMS
      runs-on: ubuntu-latest
      timeout-minutes: 10
      steps:
        - uses: fkirc/skip-duplicate-actions@master
        - uses: actions/checkout@v3
        - uses: gradle/wrapper-validation-action@v1
        - uses: actions/setup-java@v3
          with:
            distribution: 'zulu'
            java-version: 17
        - uses: actions/cache@v3
          with:
            path: |
              ~/.gradle/caches
              ~/.gradle/wrapper
            key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*') }}
        - name: Unit tests
          run: |
            ./gradlew testHmsDebugUnitTest --stacktrace
            ./gradlew jacocoTestReport --stacktrace
        - uses: codecov/codecov-action@v3
          with:
              flags: unit
