name: android

# build on c/cpp changes or workflow changes
on:
  push:
    paths:
      - 'lib/**.[ch]'
      - 'lib/**.cpp'
      - 'src/**.[ch]'
      - 'src/**.cpp'
      - 'irr/**.[ch]'
      - 'irr/**.cpp'
      - '**/CMakeLists.txt'
      - 'cmake/Modules/**'
      - 'android/**'
      - '.github/workflows/android.yml'
  pull_request:
    paths:
      - 'lib/**.[ch]'
      - 'lib/**.cpp'
      - 'src/**.[ch]'
      - 'src/**.cpp'
      - 'irr/**.[ch]'
      - 'irr/**.cpp'
      - '**/CMakeLists.txt'
      - 'cmake/Modules/**'
      - 'android/**'
      - '.github/workflows/android.yml'

jobs:
  build:
    runs-on: ubuntu-22.04
    steps:
    - uses: actions/checkout@v4
    - name: Install deps
      run: |
        sudo apt-get update
        sudo apt-get install -y --no-install-recommends gettext
    - name: Set up JDK 17
      uses: actions/setup-java@v4
      with:
          distribution: 'temurin'
          java-version: '17'
    - name: Build AAB with Gradle
      # We build an AAB as well for uploading to the the Play Store.
      run: cd android; ./gradlew bundlerelease
    - name: Build APKs with Gradle
      # "assemblerelease" is very fast after "bundlerelease".
      run: cd android; ./gradlew assemblerelease
    - name: Save AAB artifact
      uses: actions/upload-artifact@v4
      with:
        name: Minetest-release.aab
        path: android/app/build/outputs/bundle/release/app-release.aab
    - name: Save armeabi artifact
      uses: actions/upload-artifact@v4
      with:
        name: Minetest-armeabi-v7a.apk
        path: android/app/build/outputs/apk/release/app-armeabi-v7a-release-unsigned.apk
    - name: Save arm64 artifact
      uses: actions/upload-artifact@v4
      with:
        name: Minetest-arm64-v8a.apk
        path: android/app/build/outputs/apk/release/app-arm64-v8a-release-unsigned.apk
    - name: Save x86 artifact
      uses: actions/upload-artifact@v4
      with:
        name: Minetest-x86.apk
        path: android/app/build/outputs/apk/release/app-x86-release-unsigned.apk
    - name: Save x86_64 artifact
      uses: actions/upload-artifact@v4
      with:
        name: Minetest-x86_64.apk
        path: android/app/build/outputs/apk/release/app-x86_64-release-unsigned.apk
