name: Upload Preview APK

on: pull_request

jobs:
  build:
    name: Upload Preview APK
    runs-on: ubuntu-latest
    steps:
      - name: Cancel Previous Runs
        uses: styfle/cancel-workflow-action@0.9.1
        with:
          access_token: ${{ github.token }}
      - uses: actions/checkout@v3
        with:
          submodules: recursive
      - name: Validate Fastlane Metadata
        uses: ashutoshgngwr/validate-fastlane-supply-metadata@v2
      - uses: Swatinem/rust-cache@v2
        with:
          working-directory: jni/deltachat-core-rust
      - uses: actions/setup-java@v3
        with:
          java-version: 17
          distribution: 'temurin'
      - uses: android-actions/setup-android@v3
      - uses: actions/cache@v3
        with:
          path: |
            ~/.gradle/caches
            ~/.gradle/wrapper
          key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
          restore-keys: |
            ${{ runner.os }}-gradle-
      - uses: nttld/setup-ndk@v1
        id: setup-ndk
        with:
          ndk-version: r27

      - name: Compile core
        env:
          ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }}
        run: |
          export PATH="${PATH}:${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64/bin/"
          scripts/install-toolchains.sh && scripts/ndk-make.sh armeabi-v7a

      - name: Validate Gradle Wrapper
        uses: gradle/wrapper-validation-action@v1

      - name: Build APK
        run: ./gradlew --no-daemon -PABI_FILTER=armeabi-v7a assembleFossDebug

      - name: Upload APK
        uses: actions/upload-artifact@v3
        with:
          name: app-preview.apk
          path: 'build/outputs/apk/foss/debug/*.apk'
