name: Create release App Bundle

on:
  workflow_dispatch:
  push:
    branches: [ main ]

# Enrich gradle.properties for CI/CD
env:
  GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx4g -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError" -Dkotlin.daemon.jvm.options="-Xmx3584m" -Dkotlin.incremental=false -XX:+UseParallelGC
  CI_GRADLE_ARG_PROPERTIES: --stacktrace -PpreDexEnable=false --max-workers 2 --no-daemon

jobs:
  release:
    name: Create App Bundle
    runs-on: ubuntu-latest
    concurrency:
      group: ${{ github.ref == 'refs/head/main' && format('build-release-main-{0}', github.sha) }}
      cancel-in-progress: true
    steps:
      - uses: actions/checkout@v4
      - name: Use JDK 17
        uses: actions/setup-java@v3
        with:
          distribution: 'temurin' # See 'Supported distributions' for available options
          java-version: '17'
      - name: Configure gradle
        uses: gradle/gradle-build-action@v2.9.0
      - name: Create app bundle
        env:
          ELEMENT_ANDROID_MAPTILER_API_KEY: ${{ secrets.MAPTILER_KEY }}
          ELEMENT_ANDROID_MAPTILER_LIGHT_MAP_ID: ${{ secrets.MAPTILER_LIGHT_MAP_ID }}
          ELEMENT_ANDROID_MAPTILER_DARK_MAP_ID: ${{ secrets.MAPTILER_DARK_MAP_ID }}
        run: ./gradlew bundleRelease $CI_GRADLE_ARG_PROPERTIES
      - name: Upload bundle as artifact
        uses: actions/upload-artifact@v3
        with:
          name: elementx-app-bundle-unsigned
          path: |
            app/build/outputs/bundle/release/app-release.aab
