name: PR build check
on:
  pull_request:
    paths-ignore:
      - '**.md'
      - 'i18n/src/commonMain/moko-resources/**/strings.xml'
      - 'i18n/src/commonMain/moko-resources/**/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-latest

    steps:
      - name: Clone repo
        uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7

      - name: Validate Gradle Wrapper
        uses: gradle/actions/wrapper-validation@d156388eb19639ec20ade50009f3d199ce1e2808 # v4.1.0

      - name: Dependency Review
        uses: actions/dependency-review-action@5a2ce3f5b92ee19cbb1541a4984c76d921601d7c # v4.3.4

      - name: Set up JDK
        uses: actions/setup-java@2dfa2011c5b2a0f1489bf9e433881c92c1631f88 # v4.3.0
        with:
          java-version: 17
          distribution: adopt

      - name: Set up gradle
        uses: gradle/actions/setup-gradle@d156388eb19639ec20ade50009f3d199ce1e2808 # v4.1.0

      - name: Build app and run unit tests
        run: ./gradlew spotlessCheck assembleStandardRelease testReleaseUnitTest testStandardReleaseUnitTest

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

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