name: PR build check
on:
  pull_request:
    paths:
      - '**'
      - '!**.md'
      - '!i18n/src/commonMain/moko-resources/**/strings.xml'
      - '!i18n/src/commonMain/moko-resources/**/plurals.xml'
      - 'i18n/src/commonMain/moko-resources/base/strings.xml'
      - 'i18n/src/commonMain/moko-resources/base/plurals.xml'

concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
  cancel-in-progress: true

permissions:
  contents: read

jobs:
  build:
    name: Build app
    runs-on: 'ubuntu-24.04'

    steps:
      - name: Clone repo
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - name: Dependency Review
        uses: actions/dependency-review-action@da24556b548a50705dd671f47852072ea4c105d9 # v4.7.1

      - name: Set up JDK
        uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
        with:
          java-version: 17
          distribution: temurin

      - name: Set up gradle
        uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1

      - name: Check code format
        run: ./gradlew spotlessCheck

      - name: Build app
        run: ./gradlew assembleRelease

      - name: Run unit tests
        run: ./gradlew testReleaseUnitTest

      - name: Upload APK
        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
        with:
          name: arm64-v8a-${{ github.sha }}
          path: app/build/outputs/apk/release/app-arm64-v8a-release-unsigned.apk

      - name: Upload mapping
        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
        with:
          name: mapping-${{ github.sha }}
          path: app/build/outputs/mapping/release
