name: Build
on:
  workflow_call:

jobs:
  BuildAndTestAndCoverage:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - name: "Check android app changes"
        id: check-android-changes
        uses: tj-actions/changed-files@v45
        with:
          files: |
            androidApp/src/**
            shared/src/commonMain/**
            shared/src/androidMain/**
            shared/src/commonTest/**
      - name: Fetch tags
        if: steps.check-android-changes.outputs.any_modified == 'true'
        run: git fetch --tags -p
      - uses: actions/setup-java@v4
        if: steps.check-android-changes.outputs.any_modified == 'true'
        with:
          distribution: 'temurin'
          java-version: '17'
      - uses: gradle/actions/setup-gradle@v3
        if: steps.check-android-changes.outputs.any_modified == 'true'
      - uses: android-actions/setup-android@v3
        if: steps.check-android-changes.outputs.any_modified == 'true'
      - name: Configure gradle...
        if: steps.check-android-changes.outputs.any_modified == 'true'
        run: mkdir -p ~/.gradle && echo "org.gradle.daemon=false\nignoreGitVersion=true" >> ~/.gradle/gradle.properties
      - name: Build and test
        if: steps.check-android-changes.outputs.any_modified == 'true'
        run: ./gradlew build -x testReleaseUnitTest -x testDebugUnitTest -x testGithubConfigReleaseUnitTest -x testGithubConfigDebugUnitTest
      - name: coverage
        if: steps.check-android-changes.outputs.any_modified == 'true'
        run: |
          ./gradlew :koverHtmlReport
      - uses: actions/upload-artifact@v3
        if: steps.check-android-changes.outputs.any_modified == 'true'
        with:
          name: coverage
          path: build/reports/kover/html
          retention-days: 1
          overwrite: true
          include-hidden-files: true