name: PR test
on:
  pull_request:
    branches:
      - master

jobs:
  integrationTests:
    runs-on: ubuntu-latest
    steps:
      - name: Check out repository code
        uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - name: Fetch tags
        run: git fetch --tags -p
      - uses: KengoTODA/actions-setup-docker-compose@v1
        with:
          version: "2.23.3"
      - name: run selfoss
        run: |
          docker compose -f .gitea/workflows/assets/docker-compose.yml up -d
      - uses: actions/setup-java@v4
        with:
          distribution: 'temurin'
          java-version: '17'
      - uses: gradle/actions/setup-gradle@v3
      - uses: android-actions/setup-android@v3
      - name: Configure gradle...
        run: mkdir -p ~/.gradle && echo "org.gradle.daemon=false\nignoreGitVersion=true" >> ~/.gradle/gradle.properties
      - name: Change url until I find a better way to do it
        run: |
          sed -i "s/const val DEFAULT_URL = \"http:\/\/10\.0\.2\.2\:8888\"/const val DEFAULT_URL = \"http:\/\/172\.17\.0\.1\:8888\"/g" ./androidApp/src/androidTest/kotlin/bou/amine/apps/readerforselfossv2/android/CommonTests.kt
      - name: Tests
        uses: reactivecircus/android-emulator-runner@v2
        with:
          api-level: 29
          profile: pixel_2
          script: |
            ./gradlew androidApp:clearScreenshotsTask || true
            ./gradlew androidApp:createScreenshotDirectory
            adb logcat -G 16M
            ./gradlew JacocoDebugCodeCoverage || (./gradlew androidApp:fetchScreenshots && adb logcat 'InputReader:S' 'chatty:S' 'audio_hw_generic:S' 'LogApiCalls:D' '*:I' -d > ./androidApp/build/reports/androidTests/connected/screenshots/logs.txt)
      - uses: actions/upload-artifact@v3
        with:
          name: screenshot-espresso
          path: androidApp/build/reports/androidTests/connected/screenshots
          retention-days: 2
          overwrite: true
          include-hidden-files: true
      - uses: actions/upload-artifact@v3
        with:
          path: androidApp/build/reports/androidTests/connected/debug/flavors/githubConfig
          retention-days: 1
          overwrite: true
          include-hidden-files: true
      - uses: actions/upload-artifact@v3
        with:
          name: coverage-espresso
          path: androidApp/build/reports/jacoco/JacocoDebugCodeCoverage
          retention-days: 1
          overwrite: true
          include-hidden-files: true
      - name: Clean
        if: always()
        run: |
          docker compose -f .gitea/workflows/assets/docker-compose.yml stop