name: PR

on:
  pull_request:

defaults:
  run:
    shell: bash

env:
  BUILD_DIRS_ARTIFACT: build-dirs
  GRADLE_OPTS: "-Dorg.gradle.jvmargs='-Xmx4g -XX:MaxMetaspaceSize=512m'"

jobs:
  pre-commit:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout the code
      uses: actions/checkout@v5
      with:
        fetch-depth: 0 # Need the tags to build
    - name: Setup Python
      uses: actions/setup-python@v6
      with:
        python-version: '3.12'
    - name: Run pre-commit
      uses: pre-commit/action@v3.0.1

  build:
    runs-on: ubuntu-latest
    needs: pre-commit
    steps:
      - name: Checkout the code
        uses: actions/checkout@v5
        with:
          fetch-depth: 0 # Need the tags to build
      - name: Setup
        uses: ./.github/actions/setup
      - name: Native build
        uses: ./.github/actions/native-build
        with:
          cache: true
      - name: Build app
        id: buildapp
        run: |
          ./gradlew clean assembleDebug --no-daemon
          apks=$(find app/build/outputs/apk -name '*.apk' -print0 | tr '\0' ',' | sed 's/,$//')
          echo "apks=$apks" >> "$GITHUB_OUTPUT"
      - name: Tar build dirs
        run: |
          tar -czf build.tgz ./app/.
      - uses: actions/upload-artifact@v5
        id: upload-build-dirs
        with:
          name: "${{ env.BUILD_DIRS_ARTIFACT }}"
          path: build.tgz
          if-no-files-found: error
      - uses: actions/upload-artifact@v5
        with:
          name: APKs
          path: "${{ steps.buildapp.outputs.apks }}"
          compression-level: 0
