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-latest

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

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

      - name: Dependency Review
        uses: actions/dependency-review-action@a6993e2c61fd5dc440b409aa1d6904921c5e1894 # v4.3.5

      - name: Set up JDK
        uses: actions/setup-java@b36c23c0d998641eff861008f374ee103c25ac73 # v4.4.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@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
        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@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
        with:
          name: mapping-${{ github.sha }}
          path: app/build/outputs/mapping/standardRelease